《MysqL学习MysqL触发器实例一则》要点:
本文介绍了MysqL学习MysqL触发器实例一则,希望对您有用。如果有疑问,可以联系我们。
例子,实例学习MysqL触发器的用法.MysqL应用
一,准备二张测试表:
1,测试表1
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
MysqL应用
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触发器实例
1,insert触发器
表test新增记录后,将type值为“1”的记录同时插入到test_hisy表中(AFTER INSERT:录入后触发,BEFORE INSERT:录入前触发)
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触发器
表test修改时,若type值为“2”则将修改前的记录同时插入到test_hisy表中(AFTER UPDATE:修改后触发,BEFORE UPDATE:修改前触发)
MysqL应用
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触发器
表test删除记录前,将删除的记录录入到表test_hisy中(AFTER DELETE:删除后触发,BEFORE DELETE:删除前触发)
MysqL应用
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应用
总结以上是内存溢出为你收集整理的Mysql学习mysql触发器实例一则全部内容,希望文章能够帮你解决Mysql学习mysql触发器实例一则所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)