Почему моя дочерняя таблица tblOefenen2 не обновлялась после вставки данных при каскадном обновлении? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть две таблицы с именем tblOefenen (с первичным ключом) и tblOefenen2 (с внешним ключом). Я отказался от внешнего ключа раньше, потому что хотел добавить к внешнему ключу «каскад при обновлении».

Итак, что сделал: 1. Я снял ограничение (внешний ключ) tbloefenen2. 2. Я добавил новый внешний ключ к идентификатору столбца, мой первичный ключ находится в идентификаторе столбца, а также в таблице tbloefenen:

begin tran
alter table tbloefenen2
ADD constraint pkoefenen2 FOREIGN KEY (ID)
references tbloefenen (ID)
on UPDATE cascade
rollback tran
Я вставил некоторые данные в tbloefenen (таблицу первичных ключей): Begin tran
    UPDATE tblOefenen
    set naam = 'anouk'
    where naam = 'Svenn'

    select *
    from tblOefenen

    rollback tran
Только родительская таблица (первичный ключ) была обновлена ​​после того, как я вставил данные выше .. tbloefenen2 (с внешним ключом) остался без изменений (где я ожидал, что это будет автоматическое c обновление после вставки в родительский таблица первичных ключей)

Кто-нибудь может мне помочь, пожалуйста?

1 Ответ

1 голос
/ 05 мая 2020

ON UPDATE CASCADE применяется только при обновлении столбца во внешнем ключе, а не других столбцов в таблице. Итак, если вы сделаете

UPDATE tblOefenen
SET ID = 10
WHERE ID = 20;

SELECT * 
FROM tblOefenen2;

, вы увидите, что ID = 10 изменилось на ID = 20.

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