每次对触发表进行dml操作,首先通过触发访问,再进行dml操作,这一步已减慢性能.
用check根本不能替代触发器,它只是一个校验,某种程度上,比起触发器优胜的地方

解决方案 »

  1.   

    那么有这样一个需求:
      在向一个表中插入一条记录时,要求表中记录总数不超过一个上限n,因此在每次插入记录时都要判断这个上限值.
      如果用触发器来实现这们的操作的话,由于变异表的存在至少要创建两个触发器,
    这样的操作比直接通过应用程序判断这种约束的性能优吗?
      应用程序判断方法为:
       select count(*) as row_count from table;
       if row_count <= row_max then
         insert ...
       else 
         do not insert ...
       end if;
      

  2.   

    to(beckhambobo):
      其实关不是每次都先执行触发器,再执行DML
    要根据触发器的类型来决定:
    执行顺序如下:
    1、执行之前语句级触发器
    2、如果有行级触发器
      1)执行之前行级触发器
      2)执行DML
      3)执行之后行级触发器
    3、执行之后语句级触发器