Триггер для удаления из таблицы записи, на которую нет ссылок из других источников в sqlite - PullRequest
0 голосов
/ 16 февраля 2011

Я нахожусь в такой ситуации: у меня есть две таблицы, где одна таблица содержит список песен, другая содержит список исполнителей.Каждая строка таблицы песен содержит ссылку на одного исполнителя (одну строку таблицы исполнителей).Я хотел бы написать триггер, который после обновления или после удаления в таблице песен проверяет, не ссылается ли на исполнителя какую-либо песню, и удаляет его в случае необходимости.Таким образом, у меня может быть чистая база данных, где у меня нет неиспользованных художников.Это возможно?Как я могу сделать это?Спасибо!

1 Ответ

1 голос
/ 16 февраля 2011

конечно, это возможно;)

Я не знаю точный синтаксис для sqlite, но попробуйте это:

create trigger trigger_name 
after delete, update on artists_table
for each row
begin

delete from artists_table where artists_id = old.artists_id
    where (select count(*) from songs where artists_id = old.artists_id) = 0;

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