Как вы можете обновить тип данных с 32-разрядного целого до 64-разрядного целого в SQL для всех внешних ключей?
Практически для каждой базы данных SQL, как бы вы обновили типы данных и обновили все внешние ключи, связанные с этим типом данных?
Например, допустим, у меня ScientificResult представляет собой 32-разрядное целое число. Теперь я хочу, чтобы ScientifcResult был 64-разрядным целым числом. ScientificResult также является внешним ключом для нескольких других таблиц, но они объявлены как 32-разрядные целые числа.
Есть ли общий способ сделать это?
2 ответа
Генерация скриптов с использованием INFORMATION_SCHEMA.COLUMNS
и различные таблицы ограничений.
- Бросьте все внешние ключи
- Обновить все таблицы (
ALTER TABLE ALTER COLUMN
) - Воссоздайте все внешние ключи
Если таблицы огромные, шаги 2 и 3 могут занять ДЛИННОЕ время.
Я бы сказал, что общий способ - сбросить все ключи, изменить тип данных столбца, а затем воссоздать все ключи.