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

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

时间:2018-11-28 08:58:55

相关推荐

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

例子,实例学习mysql触发器的用法。

一,准备二张测试表:

1,测试表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,测试表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;

二,mysql触发器实例

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

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

3,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触发器实例一则》对你有帮助,请点赞、收藏,并留下你的观点哦!

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