У меня есть 2 таблицы - Product и BookCopy.Продукт имеет первичный ключ isbn
, а BookCopy - внешний ключ bisbn
.Я пытаюсь написать триггер, который удалил бы все соответствующие копии книг, если оригинальная книга была удалена.Это то, что у меня есть:
CREATE TRIGGER deleteCorrespondingCopies
ON Product
AFTER DELETE
AS
BEGIN
DELETE FROM BookCopy WHERE bisbn IN (SELECT isbn from deleted);
END;
Кажется, что мой триггер в порядке, потому что я получаю сообщение об ошибке:
Failed to execute query. Error: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
Продукт, который я пытаюсь удалить, содержит 3 книгикопии с тем же bisbn
, поэтому я предполагаю, что он действительно находит их?
На всякий случай ставлю скриншот структуры 2 таблиц.Хотя он не имеет специального значка, bisbn
в BookCopy является внешним ключом.
![enter image description here](https://i.stack.imgur.com/KxdJT.png)