📜  mysql 更新后触发 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.524000             🧑  作者: Mango

MySQL 更新后触发 - SQL

MySQL 更新后触发是指在 MySQL 数据库中当表的数据更新后,执行定义好的触发器,以便根据具体情况进行一些操作。在实际的开发过程中,MySQL 更新后触发可以帮助开发者更加便捷地实现某些功能或逻辑的实现。

创建 MySQL 更新后触发器

创建 MySQL 更新后触发器需要以下步骤:

  1. 先创建一个表:
CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. 然后创建触发器:
DELIMITER $$
CREATE TRIGGER `update_test` AFTER UPDATE ON `test` FOR EACH ROW BEGIN
    IF NEW.name <> OLD.name THEN
        INSERT INTO `test`(id, name) VALUES (NEW.id, UPPER(NEW.name));
    END IF;
END $$
DELIMITER ;

以上代码的作用是,当 test 表发生数据更新时,如果更新的 name 列的值与原来不同,则将更新后 name 列的值转换为大写,并插入到 test 表中的新一行中。

触发器的工作流程

MySQL 更新后触发器的工作流程如下所示:

  1. 用户执行更新语句。
UPDATE `test` SET `name` = '张三' WHERE id = 1;
  1. MySQL 数据库在执行用户更新语句时,检测到该表上存在触发器。
  2. MySQL 数据库执行触发器中定义的操作。
注意事项

在创建 MySQL 更新后触发器时,需要注意以下事项:

  1. 触发器事件必须是 AFTER UPDATE。
  2. 触发器作用于每一行,所以必须使用 FOR EACH ROW。
  3. 触发器内的 SQL 语句需要使用 DELIMITER 定义语句分隔符。
  4. 触发器内不能包含事务控制语句,因为它们会自动提交。

以上是 MySQL 更新后触发器的相关介绍,希望对您有所帮助。