为什么下面的第一个查询在 Firefox SQLite 管理器中有效,而第二个查询无效?为什么使用 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 设置设为真。此外,MySQL 只允许有限深度的递归。