1.对于delete表和insert表来说,若delete语句和insert语句影响了多个行,那么delete表和insert表中是存在对应于操作的多个行,还是只存在当前被删除或插入的行?(比如delete table_name where ...语句删除了N行,那么是否delete表中就会有那n行被删除的记录?)
2.如何引用当前被影响的行?(比如在表中的记录被删除的时候,把对应于此条被删除的记录的另外一个表中的记录删除,怎么干呢?)
...全文
2911打赏收藏
关于触发器的比较菜的问题
1.对于delete表和insert表来说,若delete语句和insert语句影响了多个行,那么delete表和insert表中是存在对应于操作的多个行,还是只存在当前被删除或插入的行?(比如delete table_name where ...语句删除了N行,那么是否delete表中就会有那n行被删除的记录?) 2.如何引用当前被影响的行?(比如在表中的记录被删除的时候,把对应于此条被删除的记录的另外一个表中的记录删除,怎么干呢?)
1.多个行
insert 另一个表 select * from inserted
可以看出
2.delete 另一个表 from 另一个表,deleted where deleted.id=另外一个表.id
或 delete from 另一个表 where 另一个表.id in (select id from deleted)
或 delete from 另一个表 where exists (select 1 from deleted where deleted.id=另一个表.id)