Mysql学习mysql触发器实例一则
《Mysql学习mysql触发器实例一则》要点: 例子,实例学习mysql触发器的用法.MYSQL应用 一,准备二张测试表: CREATE TABLE test ( ? id?????????? bigint(11) unsigned NOT NULL AUTO_INCREMENT, ? name???????? varchar(100) NOT NULL DEFAULT '', ? type???????? varchar(100), ? create_time? datetime, ? PRIMARY KEY (ID) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ? 2,测试表2 CREATE TABLE test_hisy ( ? id?????????? bigint(11) unsigned NOT NULL AUTO_INCREMENT, ? operation??? varchar(100) COMMENT '操作类型', ? PRIMARY KEY (ID) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 二,mysql触发器实例 DROP TRIGGER IF EXISTS t_after_insert_test// CREATE TRIGGER t_after_insert_test AFTER INSERT ON test FOR EACH ROW BEGIN ??? IF new.type='1' THEN ??? insert into test_hisy(name,type,create_time,operation) ??? values(new.name,new.type,new.create_time,'insert'); ??? END IF; END;// 2,update触发器 DROP TRIGGER IF EXISTS t_before_update_test// CREATE TRIGGER t_before_update_test BEFORE UPDATE ON test FOR EACH ROW BEGIN ??? IF new.type='2' THEN ??? insert into test_hisy(name,operation) ??? values(old.name,old.type,old.create_time,'update'); ??? END IF; END;// 3,delete触发器 DROP TRIGGER IF EXISTS t_before_delete_test// CREATE TRIGGER t_before_delete_test BEFORE DELETE ON test FOR EACH ROW BEGIN ??? insert into test_hisy(name,'delete'); END;// 备注:以上触发器例子中出现的new为修改后的数据,old为修改前的数据.MYSQL应用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |