Mysql 触发器

本文详细介绍了MySQL中的触发器,包括其定义、创建(单行或多行语句)、查看触发器信息以及删除触发器的方法。通过实例展示了如何在特定事件发生时自动执行操作。
摘要由CSDN通过智能技术生成

0 引用

MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATAE和DELETE语句。

1 创建触发器

触发器(trigger)是一个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MySQL自动调用。

1.1 创建只有一个执行语句的触发器

创建一个触发器的语法如下:

CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
    -- 触发器逻辑
    SET NEW.column_name = value;
END;

 1.2 创建有多个执行语句的触发器

DELIMITER //

CREATE TRIGGER after_insert_my_table
AFTER INSERT ON my_table
FOR EACH ROW
BEGIN
    -- 第一个执行语句
    INSERT INTO log_table (action, timestamp, table_name)
    VALUES ('INSERT', NOW(), 'my_table');

    -- 第二个执行语句
    UPDATE another_table
    SET column1 = column1 + 1
    WHERE some_condition;

    -- 第三个执行语句
    DELETE FROM yet_another_table
    WHERE another_condition;

    -- 更多的执行语句...
END;

//

DELIMITER ;

 2 查看触发器

查看触发器是指查看数据库中已存在的触发器的定义、状态和语法信息等。SHOW TRIGGERS和在triggers表中查看触发器信息。

2.1 利用SHOW TRIGGERS语句查看触发器信息

查看当前数据库中所有的触发器:

SHOW TRIGGERS;

2.2 在triggers表中查看触发器信息

在MySQL中,所有触发器的定义都存在INFORMATION_SCHEMA数据库的TRIGGERS表格中,可以通过查询命令SELECT查看,具体的语法如下:

SELECT * FROM information_schema.TRIGGERS
WHERE TRIGGER_SCHEMA = 'your_database_name' AND TRIGGER_NAME = 'your_trigger_name';

3 触发器使用

触发程序与表相关,当对表执行INSERT、DELETE或UPDATE语句时,将激活触发程序。可以将触发程序设置为在执行语句之前或之后激活。

下图after_insert_my_table触发器为 main_test表插入一条(name='lll',level='a')的数据后,cong_test表中id=1的数据,name字段修改为'222',set_test表中添加一条(name='lll',level='a')的数据(set_test名为trigger_name的触发器会将新增的数据的level字段转为‘b’)

 

触发器结果图 

 4 删除触发器

使用DROP TRIGGER语句可以删除MySQL中已经定义的触发器,删除触发器语句的基本语法格式如下:

  DROP TRIGGER [schema_name.]trigger_name
   //schema_name:是可选的数据库名。如果省略,将使用当前数据库。
   //trigger_name:是要删除的触发器的名称。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值