gpt4 book ai didi

mysql - 使用触发器更新DATETIME,在MySQL中得到错误1442

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

我在使用 MySQL 中的触发器时遇到问题。我有一个名为“last_modified”的列,我希望在编辑表时自动更新当前日期和时间。使用触发器,这是我的 SQL 查询:

delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
UPDATE survey_responders
SET NEW.last_modified = CURRENT_DATETIME();
END;//

但是,当我更新表时,例如使用此查询:

UPDATE survey_responders SET first_name = "bob" WHERE id = "1";

MySQL Workbench 显示错误 1442:“无法更新存储函数/触发器中的表 'table_name',因为它已被调用此存储函数/触发器的语句使用”

我已经查看了具有相同错误的类似问题,但仍然没有修复它。感谢帮助。

** 更新 **

这成功了:

delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
SET NEW.last_modified = CURRENT_TIMESTAMP();
END;//

看来我根本不需要重复

UPDATE survey_responders

并且 CURRENT_DATETIME() 不存在,我必须使用 CURRENT_TIMESTAMP()。

最佳答案

这成功了:

delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
SET NEW.last_modified = CURRENT_TIMESTAMP();
END;//

看来我根本不需要重复

UPDATE survey_responders

并且 CURRENT_DATETIME() 不存在,我必须使用 CURRENT_TIMESTAMP()。

关于mysql - 使用触发器更新DATETIME,在MySQL中得到错误1442,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15755363/

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