mysql怎么建触发器
时间 : 2023-03-02 15:52:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL 触发器是用来记录数据库活动的特殊事件处理器,它可以在插入,删除或更新一个表时自动发挥作用。它能帮助用户完成数据库进程监控,执行定时任务,及时发出警报等与安全有关的工作。而要创建MySQL 触发器,需要使用CREATE TRIGGER命令。

CREATE TRIGGER语法如下:

CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER[空间名称.]trigger_name

{ BEFORE | AFTER }

{ INSERT | UPDATE | DELETE }

ON table_name

FOR EACH ROW

[FOLLOWS | PRECEDES another_trigger_name]

BEGIN

-- body

END;

上述语法的每一部分的含义如下:

DEFINER:限定触发器的执行权限,可以指定一个用户名或CURRENT_USER。

Trigger_name:触发器的名称,必须是唯一的。

BEFORE or AFTER:指定说明触发器是在数据变更前还是变更后被执行。

INSERT,UPDATE,DELETE:指定触发器要响应的事件。

Table_name:指定需要被触发的表名称。

FOLLOWS or PRECEDES:指定此触发器是在其他触发器之前被执行还是之后被执行。

BEGIN:定义触发器的具体动作。

END:结束该语句的定义。

例如,以下几条MySQL语句用来创建一个叫audit的插入触发器,该触发器将会在users表中每次做插入操作时将日志记录在audit表中。

CREATE TRIGGER audit

BEFORE INSERT ON users

FOR EACH ROW

BEGIN

INSERT INTO audit VALUES (NEW.user_name,NOW());

END

另外,MySQL有一个使用命令行界面(CLI)客户端的可视化界面,称为MySQL Workbench,可以帮助用户通过简单的交互方式建立触发器。在MySQL Workbench中,需要打开管理–数据库

MySQL 是使用最广泛的关系型数据库管理系统,它还可以让用户创建触发器(Trigger)来做很多工作。触发器是一种数据库里的特殊程序,其能在特定的数据库领域(Domain)操作完成之后,自动触发另一种操作(比如另一个数据库操作)。触发器类似于普通的SQL脚本(Scripts),只不过它不需要用户显式调用而是在特定的步骤完成后自动执行。

要在MySQL中建立触发器,需要使用CREATE TRIGGER语句,并指定触发器的相关属性,同时编写触发器的SQL语句。通用的CREATE TRIGGER语句格式如下:

CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

其中,DEFINER表示定义此触发器的用户,trigger_time表示何时触发(BEFORE/AFTER),trigger_event表示什么事件触发(INSERT/UPDATE/DELETE),tbl_name表示在哪个表上触发,trigger_stmt表示触发时触发执行的SQL语句,最后trigger_name表示触发器的名字。

要使用MySQL触发器,以上就是必须要知道的全部内容。下面,我们以一个示例来说明如何使用MySQL创建一个触发器:

假设有一个名为orders的表,用来记录订单信息,表中有一个字段名为is_paid,该字段用来表示订单是否已经支付,用0表示未支付,用1表示已支付。我们可以利用MySQL触发器,当更新订单的is_paid字段时自动更新订单的支付日期。

CREATE TRIGGER orderPaid AFTER UPDATE ON orders FOR EACH ROW

BEGIN

IF O