У меня есть два отношения я работаю с Highschooler (ID, имя, класс) и любит (ID1, ID2)Referencing атрибутов со вставкой триггеров
Я хочу сделать триггер вставки, которая вставляет записи в Понравилось отношение.
Когда я вставляю новый Highschooler в отношение Highschooler, я хочу, чтобы мой триггер insert вставлял записи в симпатии, и в основном новый highschooler любит всех в одном классе.
То, что я хочу, это как-то ниже:
create trigger R1
after insert on Highschooler
for each row
when (Old.grade = New.grade)
begin
insert into Likes values(New.ID, Old.ID));
end;
однако, со вставкой вызывает Старая ссылка не действительна! так как я могу ссылаться на старые атрибуты?
@Bill Gregg: Спасибо за подсказку и объяснение. Так вот что вы предлагаете?
create trigger R1
after insert on Highschooler
for each row
begin
insert into Likes values(hs.ID, old.ID));
select(hs.ID, old.ID from Highschooler hs, Highschooler old
where hs.grade = old.grade and hs.ID <> old.ID
end;
Я запустил его на своей СУБД, и он не выполняется. Я подозреваю, что есть некоторая проблема с наличием инструкции select после вставки.
Я использую SQLite, кстати. – SeekingAlpha
Вы не можете смешивать свои методы вставки. Вы не можете «вставлять значения» и «вставлять select». Я думаю, что мой код будет работать как написанный (предполагая, что вы поместили его в действие «для каждой строки», и это действительно действительный синтаксис SqlLite. –