Как вы можете обновить тип данных с 32-разрядного целого до 64-разрядного целого в SQL для всех внешних ключей?

Практически для каждой базы данных SQL, как бы вы обновили типы данных и обновили все внешние ключи, связанные с этим типом данных?

Например, допустим, у меня ScientificResult представляет собой 32-разрядное целое число. Теперь я хочу, чтобы ScientifcResult был 64-разрядным целым числом. ScientificResult также является внешним ключом для нескольких других таблиц, но они объявлены как 32-разрядные целые числа.

Есть ли общий способ сделать это?

2 ответа

Генерация скриптов с использованием INFORMATION_SCHEMA.COLUMNS и различные таблицы ограничений.

  1. Бросьте все внешние ключи
  2. Обновить все таблицы (ALTER TABLE ALTER COLUMN)
  3. Воссоздайте все внешние ключи

Если таблицы огромные, шаги 2 и 3 могут занять ДЛИННОЕ время.

Я бы сказал, что общий способ - сбросить все ключи, изменить тип данных столбца, а затем воссоздать все ключи.

Другие вопросы по тегам