一个表,它有一个行级触发器,进行update,delete,insert都会触发,现在我写如下代码进行数据操作:
delete from table1 where name = 'user1';
insert into table1 ('user1','mail');
commit;它是不是会先触发delete事件,然后再触发insert事件?
还是要像下面这样写才会触发两个事件?
delete from table1 where name = 'user1';
commit;
insert into table1 ('user1','male');
commit;

解决方案 »

  1.   

    它是不是会先触发delete事件,然后再触发insert事件?
    是的.delete from table1 where name = 'user1';
    insert into table1 ('user1','mail');
    commit;
    这样就可以相当于
    delete from table1 where name = 'user1';
    执行触发器;
    insert into table1 ('user1','mail');
    执行触发器;触发器和出发他的语句相当于同一个事物,他们会一起提交或者回滚.
      

  2.   

    1. 会2次触发触发器的执行,一次是由delete事件触发,一次是由insert事件触发。2. 这2种操作,对触发器的触发是一致的。
      

  3.   

    触发器的触发与你delete insert语句commit没有联系吧,commit的作用提交这个transaction,让其他的user也能看到你的update,commit后就不能rollback了!
      

  4.   

    會分別觸發,然後一起提交transaction,如果一方不符合要求則不能提交。
      

  5.   

    触发是有先后,但是是作为一个transaction,一起提交。应该用上面那个!