gpt4 book ai didi

更新后的MySQL,更新同一个表的日期时间列

转载 作者:行者123 更新时间:2023-11-29 04:38:46 25 4
gpt4 key购买 nike

我有一个名为 teamMembers 的表,该表存储一个人的姓名和电子邮件地址:

id       INT (UNIQUE, AUTOINCREMENT)
name VARCHAR(255)
email VARCHAR(255)
updated DATETIME
created TIMESTAMP

我已经使用 phpMyAdmin 创建了我的触发器,它在这个导出中看起来像这样:

CREATE TRIGGER teamMembers.updated_updater 
AFTER UPDATE ON teamMembers
FOR EACH ROW
BEGIN
UPDATE teamMembers SET updated = NOW() WHERE id = OLD.id;
END

所以当我使用这样的查询时:UPDATE teamMembers SET name = 'test' WHERE id = 1我应该将更新的列设置为当前日期时间。

虽然这不起作用,但我收到此错误消息:

#1442 - Can't update table 'teamMembers' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

我真的搞不懂这里的问题是什么。我认为这是因为这个触发器也会调用自身,因此会变成一个无限循环。我认为必须有一种方法可以在不更改查询的情况下自动更新刚刚更新的记录。

有人可以帮我使用 MySQL 触发器更新到 updated 列吗?

最佳答案

使用before 触发器:

CREATE TRIGGER teamMembers.updated_updater 
BEFORE UPDATE ON teamMembers
FOR EACH ROW
BEGIN
SET new.updated = NOW();
END

关于更新后的MySQL,更新同一个表的日期时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612791/

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