怀化物流网站建设报价,e盘网站建设,调兵山网站,产品设计培训机构哪家好sql server mySQL
create trigger 触发器名称
{ before | after } [ insert | update | delete ] on 表名
for each row
触发器执行的语句块## 表名#xff1a; 表示触发器监控的对象
## before | after : 表示触发的时间#xff0c;before : 表示在事件之前触发 表示触发器监控的对象
## before | after : 表示触发的时间before : 表示在事件之前触发 after表示在事件之后触发
## insert | update | delete 表示触发的事件Insert 表示插入记录时触发update: 表示更新记录时触发delete表示删除记录时触发## 触发器执行语句块 可以是单条sql语句也可以有 begin 。。。。end 结构组成的复合语句块注意要加 delimiter $ .....delimiter ;NEW与OLD详解
MySQL 中定义了 NEW 和 OLD用来表示触发器的所在表中触发了触发器的那一行数据来引用触发器中发生变化的记录内容具体地
在INSERT型触发器中NEW用来表示将要BEFORE或已经AFTER插入的新数据 在UPDATE型触发器中OLD用来表示将要或已经被修改的原数据NEW用来表示将要或已经修改为的新数据 在DELETE型触发器中OLD用来表示将要或已经被删除的原数据 使用方法
NEW.columnname新增行的某列数据columnName为相应数据表某一列名 OLD.columnname删除行的某列数据columnName为相应数据表某一列名 另外OLD是只读的而NEW则可以在触发器中使用 SET 赋值这样不会再次触发触发器造成循环调用
sql server Insertded 等价 Mysql NEW deleted表 等价 OLD 表 查看触发器
1、SHOW TRIGGERS语句查看触发器信息 #查询所有触发器 SHOW TRIGGERS 查看指定触发器定义 show create trigger 触发器名称 结果显示所有触发器的基本信息无法查询指定的触发器
2、在information_schema.triggers表中查看指定触发器信息 #查询指定触发器 SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME‘trig1’; 结果显示所有触发器的详细信息同时该方法可以查询制定触发器的详细信息。
Tips所有触发器信息都存储在information_schema数据库下的triggers表中可以使用SELECT语句查询如果触发器信息过多最好通过TRIGGER_NAME字段指定查询。
删除触发器 DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name #删除指定触发器
drop trigger trig1;总结
触发器是基于行触发的所以删除、新增或者修改操作可能都会激活触发器所以不要编写过于复杂的触发器也不要增加过多的触发器这样会对数据的插入、修改或者删除带来比较严重的影响同时也会带来可移植性差的后果所以在设计触发器的时候一定要有所考虑。
触发器是一种特殊的存储过程它在插入删除或修改特定表中的数据时触发执行它比数据库本身标准的功能有更精细和更复杂的数据控制能力。