Создание триггера на основе нескольких условий в sqlite - PullRequest
0 голосов
/ 07 декабря 2018

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

Здесьмой код для trigger

CREATE TRIGGER RemoveAccountReports 
AFTER DELETE ON Accounts 
FOR EACH ROW 
WHEN Reports.Parent_Type = ACCOUNT 
BEGIN 
DELETE FROM Reports 
WHERE Parent_ID = OLD.Account_ID; 
END;

Мне нужно удалить из таблицы Reports с каждым удалением в таблице Accounts, где Reports.Parent_ID = Accounts.Account_ID.

Но только если Reports.Parent_type = "ACCOUNT"

Как мне этого добиться?

заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

когда вы выполните свое заявление, у вас будет эта ошибка:

 no such column: Reports.Parent_Type

Решение:

CREATE TRIGGER RemoveAccountReports 
AFTER DELETE ON Accounts 
FOR EACH ROW 
BEGIN 
DELETE FROM Reports 
WHERE Parent_ID = OLD.Account_ID AND  Reports.Parent_Type = 'ACCOUNT' ; 
END;
0 голосов
/ 07 декабря 2018

Мне кажется, что вы пропускаете кавычки вокруг ACCOUNT;оно должно быть:

WHEN Reports.Parent_Type = 'ACCOUNT'

(обратите внимание, что одинарные кавычки должны использоваться со строками.)

...