以下の最初のクエリは Firefox SQLite マネージャーで機能するのに、2 番目のクエリは機能しないのはなぜですか? SQLite、MySQL、PostGreSQLなどを使用したSQL Fiddleで両方が失敗するのはなぜですか?
create trigger symmetric_insertion
after insert on T
for each row
when not exists (select * from T where T.A = New.B and T.B = New.A)
begin
insert into T values (New.B, New.A);
end;
.
create trigger symmetric_insertion
after insert on T
for each row
begin
insert into T values (New.B, New.A)
where not exists (select * from T where T.A = New.B and T.B = New.A);
end;
編集: recursive_triggers 設定を true にしていないため、無限ループは作成されません。さらに、MySQL では有限の深さの再帰しか許可されていません。