MySQL里写trigger,会不会导致性能下降的问题
这个性能问题很多都是相对的,譬如如果你不用存储过程,那应用服务器和数据库服务器的交互就会增多,这样也导致性能降低。一般而言,存储过程的使用降低应用的负载,更多的要考虑使用的合理性。譬如触发器过多也会影响你操作表的速度,因而你应该根据系统自身情况去分析设计
mysql触发器,不能触发
触发器有before 和after 两种,一种是在insert之前,一种是在insert之后。
你说的sql2008触发器我不太清楚,我就用过mysql的触发器。
请教mysql触发器语句中变量使用
SELECT FirstName, @flag:=1 AS flag FROM user; 试下这样行不行。MySQL里局部变量用一个@标识,@flag:=1 就是使用 flag 变量保存数据 1,AS 设定它的别名。
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
不知道你什么数据库.如果是 Oracle 数据库的话。如果要 改变 INSERT, UPDATE那么用 BEFORE FOR EACH ROW 的触发器。通过在触发器里面, 修改 :new 中的数据, 实现 更改 INSERT UPDATE 的数据。
举个例子来说,就是 插入的时候,数据是1的, 你触发器把1修改成2,最后写到数据库中,结果是2。DELETE 触发器没法 改变, 因为数据是删除的。至于要 取消INSERT, UPDATE以及DELETE语句只需要在触发器中, 抛出异常, 就会自动导致事务回滚,从而取消操作。
例如在 INSERT, UPDATE以及DELETE 的触发器中,只有这么一行-- 错误代码允许的范围是 -20,000~20,999RAISE_APPLICATION_ERROR(-20000, '触发器取消了操作!');那么最后对这个表的所有的 INSERT, UPDATE以及DELETE 操作,都直接因为出错,而无法更新数据库表了。
还没有评论,来说两句吧...