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

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

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

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

Ответы [ 2 ]

2 голосов
/ 13 января 2009

Создание сценариев с использованием INFORMATION_SCHEMA.COLUMNS и различных таблиц ограничений.

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

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

1 голос
/ 13 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...