Aurora MySQL 5.6 无服务器触发器不工作
Aurora MySQL 5.6 Serverless Trigger not working
我在 MYSQL Aurora (V1) 中创建了一个触发器。它已创建,但当我 运行 插入触发器未触发时。同样的触发器在 Local MySQL Latest(8).
中运行良好
这是因为极光是5.6版本吗?或者是因为在无服务器集群中我们需要启用触发器 (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 ;
问题不是触发因素。使用 MySQL workbench(client) 并插入它时有效。
但是,当使用 Data API 时,它似乎没有触发。我将 xxx_xx 定义为没有默认值的 Not Null。出于某种原因,这在通过数据 API 使用时触发触发器之前给出了一个错误。因此,解决方法是允许 NULL 具有默认值。无论如何,触发器将更新插入时的值,因此它确实导致了任何问题。
我在 MYSQL Aurora (V1) 中创建了一个触发器。它已创建,但当我 运行 插入触发器未触发时。同样的触发器在 Local MySQL Latest(8).
中运行良好这是因为极光是5.6版本吗?或者是因为在无服务器集群中我们需要启用触发器 (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 ;
问题不是触发因素。使用 MySQL workbench(client) 并插入它时有效。 但是,当使用 Data API 时,它似乎没有触发。我将 xxx_xx 定义为没有默认值的 Not Null。出于某种原因,这在通过数据 API 使用时触发触发器之前给出了一个错误。因此,解决方法是允许 NULL 具有默认值。无论如何,触发器将更新插入时的值,因此它确实导致了任何问题。