gpt4 book ai didi

MySQL在执行 "before delete"触发器时抛出警告

转载 作者:行者123 更新时间:2023-11-29 12:02:56 25 4
gpt4 key购买 nike

我正在设计一个小型数据库( SQLfiddle )。我正在尝试创建一个触发器,以便当从 downtime 中删除一行时,匹配的历史记录行将添加到 downtimeHistory 中:

CREATE TRIGGER `announce`.`downtime_BEFORE_DELETE` BEFORE DELETE ON `downtime` FOR EACH ROW
BEGIN
INSERT INTO downtimeHistory (serviceName, startTime) VALUES(OLD.serviceName, OLD.startTime);
END

但是,MySQL 并不关心这个触发器。它允许我创建它,并且它似乎运行正常,但每次执行触发器时都会抛出错误:

1 row(s) affected, 1 warning(s): 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly.

如果我尝试对 idendTime 列执行某些操作,这对我来说是有意义的,但更新 startTime 并不重要,因为它只是提供默认值值。

那么...为什么会抛出这个错误?我该如何阻止它?我应该忽略它吗?

最佳答案

您的触发器插入到 downtimeHistory 表中。 id 列是 AUTO_INCRMENT。

错误消息告诉您不允许此组合。

INSERT INTO.... 语句隐式导致设置 ID 值。

关于MySQL在执行 "before delete"触发器时抛出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com