【问题标题】:Aurora MySQL 5.6 Serverless Trigger not workingAurora MySQL 5.6 无服务器触发器不起作用
【发布时间】:2021-03-02 05:25:01
【问题描述】:

我在 MYSQL Aurora (V1) 中创建了一个触发器。它被创建但是当我运行插入触发器时没有触发。同样的触发器在 Local MySQL Latest(8) 中效果很好。

这是因为 Aurora 是 5.6 版本的 Aurora 吗?还是因为在无服务器集群中我们需要启用触发器 (https://aws.amazon.com/premiumsupport/knowledge-center/rds-mysql-functions/) 但是,在控制台中不允许创建 5.6 Aurora 参数组。

有什么想法吗?

delimiter $$
CREATE TRIGGER `test_BEFORE_INSERT` BEFORE INSERT ON `test`
FOR EACH ROW BEGIN
  SET NEW.xxx_xx = (SELECT MAX(test_id) + 1 FROM test);
  IF NEW.`xxx_xx` IS NULL OR NEW.`xxx_xx` = '' THEN
        SET NEW.`xxx_xx` = 1;
  END IF;
END $$
delimiter ;  

【问题讨论】:

  • 感谢 Akina,这与触发器本身无关。发布答案。

标签: mysql amazon-rds


【解决方案1】:

问题不是触发器。使用 MySQL 工作台(客户端)并插入它时有效。 但是,当使用 Data API 时,它似乎没有触发。我将 xxx_xx 定义为 Not Null 没有默认值。出于某种原因,这在通过数据 API 使用时触发触发器之前给出了错误。因此,解决方法是允许 NULL 具有默认值。无论如何,触发器会在插入时更新值,因此确实会导致任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 2019-01-17
    • 2012-09-04
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多