gpt4 book ai didi

MySQL 更新 current_timestamp 不起作用

转载 作者:行者123 更新时间:2023-11-29 14:18:04 26 4
gpt4 key购买 nike

我有一个 mysql 表,其中有一列updated_at default current_timestamp on update current_timestamp

每当我使用查询(直接或通过 php 代码)更新行时,updated_at 的值都会更新,但每当该行由其他表中的触发器更新时,updated_at 值不变。我希望这也能发生。

有什么建议吗?出现这个问题的原因是什么?

table1的相关行

Field             | Type             | Null | Key | Default           | Extra                       
updated_at | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP

每当 table2 中的某个列 2 更新时,table2 中的触发器就会更新 table1 中的某些列。注意:触发器中的时间戳不会更新。我希望 MySQL 能够自动执行此操作。

此外,我正在使用主从复制,问题出在主服务器和从服务器上。主从复制的日志格式是语句日志。

最佳答案

这是使用触发器更新时间戳的简单示例:

首先您应该有两个(简单)表:

表名为 TriggerTable

#Field     #Type         #Function
1 id int(11) AUTO_INCREMENT
2 data varchar(52)

表名为 UpdatesHere

#Field     #Type         #Function
1 id int(11) AUTO_INCREMENT
2 time timestamp NOW(), on update NOW()

然后触发

添加在每个 TriggerTable 上执行的触发器更新:

CREATE TRIGGER `TriggerTableOnUpdate` 
AFTER UPDATE ON `TriggerTable`
FOR EACH ROW
BEGIN
UPDATE `UpdatesHere` SET `time`=NOW() WHERE `id`=NEW.id;
END

之后,如果您确实在 TriggerTable 中进行更新它应该更新UpdatesTable也。它只是更新具有相同 id 的列。

例如:

UPDATE  `TriggerTable` SET `data`='Hello World' WHERE `id`=1;

将更新专栏timeid 排在一起1 人在 table UpdatesHere .


注意:将分隔符更改为 DELIMITER [ delimiter ]定义触发器时。

关于MySQL 更新 current_timestamp 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249985/

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