Триггер не может удалить несколько строк - PullRequest
0 голосов
/ 24 мая 2018

У меня есть 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

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