FK ограничение с использованием записей замененной таблицы? - PullRequest
0 голосов
/ 25 сентября 2019

[Править: Решено.Если вы считаете, что этот вопрос не стоит оставлять на SO, пожалуйста, прокомментируйте, и я удалю его.В противном случае, кто знает, это может быть полезно для кого-то еще.]


Среда: DB2 for IBMi

У меня проблема, когда ограничение внешнего ключа не позволяет вставку для некоторыхзаписи о том, что do имеют соответствующий ключ в родительской таблице.

History:

Я создал скрипт php для проверки загрузки некоторых записей вдочерней таблицы, и понял, что родительская таблица моей разработки устарела и не имеет некоторых записей, необходимых для удовлетворения ограничения FK.

Итак, используя зеленый экран, я скопировал производственный объект на сервер разработки.Я использовал RSTOBJ, чтобы поместить его в свою библиотеку на компьютере разработчика, а затем использовал COPYF, чтобы скопировать его в соответствующую версию разработки производственной библиотеки.(Сначала я переименовал существующий объект).

Имя новой таблицы и системное имя совпадают с именем старой таблицы.

Насколько я могу судить, родительская таблица теперь имеет всенеобходимые строки для выполнения ограничения FK.Я запустил запросы, чтобы убедиться, что необходимые строки есть. Они присутствуют.

Однако, когда я пытаюсь вставить запись в дочернюю таблицу, которая ссылается на значение, которого не было в исходной таблице, FKжалобы на ограничение.

Есть ли какое-то "обновление", которое нужно сделать, чтобы обновить ограничение FK?

1 Ответ

1 голос
/ 25 сентября 2019

Ответ таков: на самом деле было , все еще ссылаясь на старую таблицу.Когда переименовывает таблицу на зеленом экране, все ссылки на таблицу обновляются в таблицах с использованием ее в качестве внешнего ключа.

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

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