欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2023/12/20 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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触发器实例一则的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。