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

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

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

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

Если есть программа или сценарий, о которых кто-нибудь знает, может это сделать?

John Egbert 20.04.2011 19:48
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
93
2

Ответы 2

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

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

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

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

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