在 MySQL 中,使用 “after” 关键字可以创建触发器。具体方法如下:
- 创建一个新的触发器
CREATE TRIGGER trigger_name
AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行的 SQL 语句
END;
其中,”trigger_name” 是您给触发器起的名称;”table_name” 是指定要对其进行操作的表名;AFTER 后面是指定何时触发该触发器(INSERT、UPDATE 或 DELETE);FOR EACH ROW 表示每当有一行被插入、更新或删除时都会执行该触发器。
- 在 BEGIN 和 END 之间编写 SQL 语句,用于定义触发器要执行的操作。
例如,在以下示例中,我们创建了一个名为 “order_log” 的表,并创建了一个名为 “insert_order_log_trigger” 的 AFTER INSERT 触发器。每次向 “orders” 表中插入新行时,该触发器将向 “order_log” 表中插入相应数据。
CREATE TABLE order_log (
id INT PRIMARY KEY,
order_number VARCHAR(20),
create_time DATETIME,
status VARCHAR(10)
);
DELIMITER $$
CREATE TRIGGER insert_order_log_trigger
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
INSERT INTO order_log (id, order_number, create_time, status) VALUES (NEW.id, NEW.order_number, NOW(), 'created');
END$$
DELIMITER ;
在以上代码中,我们使用了 DELIMITER 命令来指定分隔符,以便在 BEGIN 和 END 之间编写多个 SQL 语句。最后,我们再次使用 DELIMITER 命令将分隔符设置回 “;“。
需要注意的是,在定义触发器时,您还可以使用其他关键字和选项来更改触发器的行为。例如,您可以使用 BEFORE 关键字来指定在插入、更新或删除行之前执行触发器。此外,您还可以使用 OLD 和 NEW 关键字引用被修改的旧值和新值。