Предполагам, че се опитвате да гарантирате, че Book
записите се актуализират всеки път, когато промените Pname
колона в Publisher
таблица, но Oracle няма on update cascade
.
Вижте тук
за синтактичната диаграма на references
клауза.
За да промените първичните ключове в Oracle, имате няколко опции:
-
Отлагане на ограничението (чужд ключ) проверете до извършване, след което актуализирайте както родител, така и дете в транзакцията.
-
Създайте нов родител с актуализираните подробности, след това променете всички деца, след което изтрийте оригиналния родител. Всичко в сделка, разбира се.
-
Спрете да използвате променливи данни като ключ. Отне много време на администраторите на бази данни да ме убедят, че трябва да се използват изкуствени (сурогатни) ключове, а не истински данни, но това беше случаят на използване, който най-накрая ме спечели. Използването на изкуствен ключ (който никога не трябва да се променя) означава, че този проблем изчезва напълно.