MySQL触发器篇,触发器详解

 时间:2024-11-02 08:48:06

触发器,也叫触发程序,是与表有关的命名数据库对象。触发器是个特殊的存储过程,但是触发器不需要CALL语句调用,也不需要手动启动。它由事件触发,事件包括INSERT,UPDATE和DELETE语句,当表中出现这些特定事件时,将激活该对象 。

工具/原料

电脑

MySQL

Navicat等可视化数据库管理工具

创建测试表

1、创建用户表DROP TABLE IF EXISTS `t_user`;CREATE TA幞洼踉残BLE `t_user` ( `id` int烫喇霰嘴(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

MySQL触发器篇,触发器详解

2、创建用户信息表DROP TABLE IF EXISTS `t_user_info`;CR苇质缵爨EATE TABLE `t_user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) DEFAULT NULL, `age` varchar(20) DEFAULT NULL, `sex` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

MySQL触发器篇,触发器详解

创建触发器

1、单个执行语句的触发器语法结构:CREATE TRIGGER 触发器名称 触发时机(before,after) 触发事件(INSERT,UPDATE和DELETE)ON 建立触发器的表名 FOR EACH ROW 触发器执行语句;

MySQL触发器篇,触发器详解

2、多个执行语句的触发器语法结构:CREATE TRIGGER 触发器名称,触发时机(before,after),触发事件(INSERT,UPDATE和DELETE)ON 建立触发器的表名 FOR EACH ROWBEGIN触发器执行语句;END;

MySQL触发器篇,触发器详解

3、示例1.创建只有一个执行语句的触发器CREATE TRIGGER test_tri BEFORE INSERT ON t_user FOR EACH ROWSET @num = @num + 1;

MySQL触发器篇,触发器详解

4、测试触发器SET @num = 0;INSERT INTO t_user (`name`) VALUES ('甲');INSERT INTO t_user (`name`) VALUES ('乙');SELECT @num;SELECT * FROM t_user;

MySQL触发器篇,触发器详解
MySQL触发器篇,触发器详解
MySQL触发器篇,触发器详解

5、示例2创建有多个执行语句的触发器,实现在插入数据到用户釉涑杵抑表后,插入相关数据到用户信息表CREATE TRIGGER test_tri_2 AFTER INSERT ON t_user FOR EACH ROWBEGIN DECLARE user_id int(11); DECLARE user_age varchar(20); DECLARE user_sex VARCHAR(20); SELECT MAX(id) INTO user_id FROM t_user; SET user_age = user_id * 10; IF user_id % 2 = 0 THEN SET user_sex = '男'; ELSE SET user_sex = '女'; END IF; INSERT INTO t_user_info (uid,age,sex) VALUES (user_id,user_age,user_sex);END

MySQL触发器篇,触发器详解

6、测试触发器INSERT INTO t_user (`name`) VALUES ('丙');INSE伊怕锱鳏RT INTO t_user (`name`) VALUES ('丁');SELECT * FROM t_user;SELECT * FROM t_user_info;

MySQL触发器篇,触发器详解
MySQL触发器篇,触发器详解
MySQL触发器篇,触发器详解

查看触发器

1、查看触发器是指查看数据库中已存在的触发器的定义,状态及语法信息,查看触发器的方法有使用 SHOW TRIGGERS 命令和在INFORMATION_SCHEMA数据库中的TRIGGERS表中查看

MySQL触发器篇,触发器详解

2、使用SHOW TRIGGERS命令示例:SHOW TRIGGERS;如果使用的是命令行,请在句末加上\G 不然语句会显得混乱

MySQL触发器篇,触发器详解

3、在INFORMATION_SCHEMA数据库中的TRIGGERS表中查看SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGER_NAME = 'test_tri_1';

MySQL触发器篇,触发器详解

删除触发器

1、语法结构DROP TRIGGER [数据库名称.]触发器名称如果省略了数据库名称,则会从当前数据库中删除触发器

MySQL触发器篇,触发器详解

2、示例DROP TRIGGER study.test_tri;

MySQL触发器篇,触发器详解

3、删除后查看一下触发器SHOW TRIGGERS;

MySQL触发器篇,触发器详解
  • 如何设置EditPlus编译与运行程序
  • CSS、HTML中background标签的使用
  • Excel如何快速完成多等级判断
  • MyEclipse如何删除Servers界面不用的Tomcat
  • 如何解决Python的PIP升级失败
  • 热门搜索
    疫情手抄报内容 廉洁文化进校园手抄报 心理健康的手抄报 长征手抄报 扶贫手抄报 消防安全手抄报图片 水的手抄报 清明节手抄报第一名 手抄报图 端午节手抄报资料