其中,trigger_name为要修改的触发器的名称,table_name是要监听的表名称,为触发时间,表示触发类型。AS和BEGIN、END之间是触发器的具体内容。
MySQL修改触发器的方法
- 使用命令SHOW TRIGGERS命令获取已经存在的触发器信息,确定要修改的触发器的名称。例如:
SHOW TRIGGERS FROM database_name;
- 使用ALTER TRIGGER命令更新触发器。例如:
ALTER TRIGGER trigger_name
ON table_name
[AFTER|BEFORE] [INSERT|UPDATE|DELETE]
AS
BEGIN
/* 触发器的具体内容 */
END;
其中,trigger_name为要修改的触发器的名称,table_name是要监听的表名称,[AFTER|BEFORE]为触发时间,[INSERT|UPDATE|DELETE]表示触发类型。AS和BEGIN、END之间是触发器的具体内容。
MySQL删除触发器的方法
- 使用命令SHOW TRIGGERS命令获取已经存在的触发器信息。例如:
SHOW TRIGGERS FROM database_name;
- 使用DROP TRIGGER命令删除触发器。例如:
DROP TRIGGER [IF EXISTS] trigger_name;
其中,trigger_name为要删除的触发器名称。如果使用了IF EXISTS,则会在未找到trigger_name时返回一个警告,而不是错误。
示例
假设有如下一个表students:
CREATE TABLE students (
id INT(11) PRIMARY KEY,
name VARCHAR(50),
age INT(11),
gender VARCHAR(10)
);
现在我们需要建立一个在students表中插入数据时自动记录操作日志的触发器:
CREATE TRIGGER insert_log
AFTER INSERT
ON students
FOR EACH ROW
BEGIN
INSERT INTO log (action, table_name, data)
VALUES ('INSERT', 'students', CONCAT('id:',NEW.id,' name:',NEW.name,' age:',NEW.age,' gender:',NEW.gender));
END;
如果我们需要修改此触发器,只需要使用ALTER TRIGGER命令:
ALTER TRIGGER insert_log
ON students
AFTER INSERT
AS
BEGIN
INSERT INTO log (action, table_name, data)
VALUES ('INSERT', 'students', CONCAT('id:',NEW.id,' name:',NEW.name,' age:',NEW.age,' gender:',NEW.gender));
END;
如果我们需要删除此触发器,只需要使用DROP TRIGGER命令:
DROP TRIGGER insert_log;
沃梦达教程
本文标题为:MySQL修改和删除触发器(DROP TRIGGER)方法详解
基础教程推荐
猜你喜欢
- redis安装、配置、使用和redis php扩展安装教程 2023-12-07
- 基于redis分布式锁实现“秒杀” 2023-09-11
- PostgreSQL实时查看数据库实例正在执行的SQL语句实例详解 2023-07-21
- 详解MySQL主从复制及读写分离 2023-12-28
- 浅谈入门级oracle数据库数据导入导出步骤 2023-12-06
- MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程 2024-02-12
- MySQL 数据库聚合查询和联合查询操作 2023-08-09
- ORACLE中%TYPE和%ROWTYPE的使用详解 2023-07-23
- 项目适 Oracle改造及SSL安全性配置问题汇总详解 2023-07-23
- 使用MongoDB操作文档 2023-07-16