失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql条件触发器实例_mysql 触发器实例

mysql条件触发器实例_mysql 触发器实例

时间:2020-12-24 21:37:47

相关推荐

mysql条件触发器实例_mysql 触发器实例

测试表1

DROP TABLE IF EXISTS test;

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

DROP TABLE IF EXISTS test_hisy;

CREATE TABLE test_hisy (

id bigint(11) unsigned NOT NULL AUTO_INCREMENT,

name varchar(100) NOT NULL DEFAULT '',

type varchar(100),

create_time datetime,

operation varchar(100) COMMENT '操作类型',

PRIMARY KEY (ID)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

insert触发器

表test新增记录后,将type值为“1”的记录同时插入到test_hisy表中(AFTER INSERT:录入后触发,BEFORE INSERT:录入前触发)

DELIMITER //

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;//

update触发器

表test修改时,若type值为“2”则将修改前的记录同时插入到test_hisy表中(AFTER UPDATE:修改后触发,BEFORE UPDATE:修改前触发)

DELIMITER //

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, type, create_time, operation)

values(old.name, old.type, old.create_time, 'update');

END IF;

END;//

delete触发器

表test删除记录前,将删除的记录录入到表test_hisy中(AFTER DELETE:删除后触发,BEFORE DELETE:删除前触发)

DELIMITER //

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, type, create_time, operation)

values(old.name, old.type, old.create_time, 'delete');

END;//

注:

以上触发器例子中出现的new为修改后的数据, old为修改前的数据

如果觉得《mysql条件触发器实例_mysql 触发器实例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。