MySQL修改和删除触发器(DROP TRIGGER)方法详解

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)方法详解 - Python技术站

(0)
上一篇 2023年3月10日
下一篇 2023年3月10日

相关文章

  • 实验六 存储过程

    实验六 存储过程 第1关:增加供应商相关列sqty use demo; #代码开始 #在S表中增加一列供应零件总数量(sqty),默认值为0。 altertable s add sqty intdefault0; #代码结束 desc s; 第2关:定义、调用简单存储过程 use demo; #代码开始 #1、定义简单存储过程:计算所有供应商供应零件总数量并…

    MySQL 2023年5月10日
    00
  • mysql居然还能实现分布式锁的方法

    MySQL的分布式锁是基于InnoDB存储引擎的行锁和事务特性实现的。实现分布式锁的常用方法有两种:使用MySQL集群实现和使用ZooKeeper实现。 使用MySQL集群实现分布式锁 通过使用MySQL集群(MySQL Cluster)可以实现分布式锁。MySQL集群是一种面向高可用、高并发的分布式数据库解决方案。 其中,NDB(MySQL Cluster…

    database 2023年5月21日
    00
  • day11-MySql存储结构

    MySql存储结构 参考视频:MySql存储结构 1.表空间 不同的存储引擎在磁盘文件上的结构均不一致,这里以InnoDB为例: CREATE TABLE t(id int(11)) Engine = INNODB; 在新表创建的过程中,InnoDB会在磁盘的data目录下创建与这个表对应的两个文件:t.frm、t.ibd。 t.frm 存储了表结构等信息,…

    MySQL 2023年4月11日
    00
  • DBMS 聚合

    DBMS (Database Management System) 聚合是在数据库查询操作 (Select) 中对某些列进行处理的一种方式。聚合操作可用于统计、汇总和计算数据,返回一个单一的结果,其功能相当于 SQL 中的GROUP BY 语句。本文将详细讲解 DBMS 聚合的完整攻略。 聚合函数 聚合函数 (Aggregate Function) 是 DB…

    database 2023年3月27日
    00
  • 如何使用Python从数据库中获取CLOB类型的数据?

    以下是如何使用Python从数据库中获取CLOB类型的数据的完整使用攻略。 使用Python从数据库中获取CLOB类型的数据的前提条件 在Python中从数据库中获取CLOB类型的数据前,需要保已经安装并启动支持数据的,例如Oracle、MySQL或PostgreSQL,并且需要安装Python的相应数据库驱动程序,例如cx_Oracle、mysql-con…

    python 2023年5月12日
    00
  • jsp 连接sql server 2008 连接不上的解决方法

    针对“jsp 连接sql server 2008 连接不上的解决方法”的问题,我们需要详细讲解以下步骤和解决方法: 1. 确认连接信息 首先,需要确认JDBC连接SQL Server的相关信息是否填写正确。这包括SQL Server的服务器地址、端口、数据库名称、用户名和密码等信息。另外,还需要注意JDBC驱动版本是否正确。在确认所有信息无误后,可以考虑执行…

    database 2023年5月21日
    00
  • Zend Framework数据库操作方法实例总结

    Zend Framework数据库操作方法实例总结 在Zend Framework中,提供了多种数据库操作方法,其常用的有:Zend_Db和Zend_Db_Table两种方式。以下是这两种方式的具体使用方法详解。 1. Zend_Db方式 1.1 配置数据库信息 // 配置数据库信息 $config = array( ‘host’ => ‘dbhost…

    database 2023年5月22日
    00
  • 批量 kill mysql 中运行时间长的sql

    下面是“批量 kill mysql 中运行时间长的sql”的完整攻略: 1. 确认需要 kill 的 SQL 语句 可以通过执行以下命令查看当前 MySQL 实例中运行时间超过5秒的 SQL 语句: SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM INFORMATION_SCHEMA.PR…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部