在MySQL中,可以使用CREATE TRIGGER语句来创建触发器,其基本语法如下:
MySQL中创建触发器的方法
在MySQL中,可以使用CREATE TRIGGER语句来创建触发器,其基本语法如下:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW
BEGIN
-- trigger body
END;
其中,各个参数的含义如下:
- trigger_name:触发器的名称。
- trigger_time:触发器的执行时机,可以是BEFORE或AFTER。
- trigger_event:触发器的执行事件,可以是INSERT、UPDATE或DELETE。
- table_name:要关联触发器的表名。
- FOR EACH ROW:表示为每行数据都执行触发器。
- BEGIN和END之间是触发器的实际执行逻辑。
触发器执行时机和事件
在创建触发器时,需要指定触发器的执行时机和执行事件:
- 执行时机:可以是BEFORE或AFTER,指定在数据发生变化前还是变化后执行触发器中的逻辑。
- 执行事件:可以是INSERT、UPDATE或DELETE,指定在对数据进行插入、更新或删除时执行触发器中的逻辑。
触发器的实例说明
下面给出一个例子,说明如何创建一个触发器。
假设我们有一个用户表(user),其中包含id、name和age三个字段,现在需要在插入一条记录时,将该记录的name和age分别拼接成一个字符串,并将该字符串插入到另一个表(user_log)中。
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE user_log (
id INT(11) NOT NULL AUTO_INCREMENT,
info VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
现在我们可以使用下面的SQL语句创建一个触发器:
CREATE TRIGGER user_insert_trigger
AFTER INSERT
ON user FOR EACH ROW
BEGIN
DECLARE info VARCHAR(100);
SET info = CONCAT('New user added: ', NEW.name, ', age ', NEW.age);
INSERT INTO user_log (info) VALUES (info);
END;
此时,当我们往user表中插入一条新记录时,触发器会自动将该记录的name和age分别拼接成一个字符串,并插入到user_log表中,以表示一个新用户已经添加。
沃梦达教程
本文标题为:MySQL创建触发器(CREATE TRIGGER)方法详解
基础教程推荐
猜你喜欢
- MongoDB数据库条件查询技巧总结 2023-07-16
- MongoDB利用oplog恢复数据的方法 2023-07-16
- MySQL实战文章(非常全的基础入门类教程) 2023-07-27
- 面试官问我Mysql的存储引擎了解多少 2022-08-31
- mysql数据库分表分库的策略 2024-01-01
- 在执行gem install redis时 : ERROR: Error installing redis: redis requires Ruby version >= 2.2.2 2023-09-11
- mysql timestamp比较查询遇到的坑及解决 2023-08-06
- Python3.10动态修改Windows系统本地IP地址 2023-07-27
- Mysql CAST函数的具体使用 2022-08-31
- 一文详解如何使用Python批量拼接图片 2023-07-28