gpt4 book ai didi

mysql - 外键更新时不更新时间戳

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

我正在使用 MYSQL 5.1.38 并且我有下表:

create table table1 (  
col1 varchar(50) primary key not null,
ts1 timestamp not null default current_timestamp on update current_timestamp
)engine=innodb;

create table table2 (
col1 varchar(50) not null,
ts2 timestamp not null default current_timestamp on update current_timestamp,
foreign key (col1) references table1 (col1) on update cascade on delete cascade
)engine=innodb;

当我更新 table1 中的 col1 时,table1 中的 ts1 和 table2 中的 col1 会更新,但 table2 中的 ts2 不会更新。

这是输出:

mysql>   insert into table1 (col1) values ('test'); Query OK, 1 row affected (0.00 sec)mysql>   insert into table2 (col1) values ('test');Query OK, 1 row affected (0.00 sec)mysql> select * from table1;+------+---------------------+| col1 | ts1                 |+------+---------------------+| test | 2013-05-17 09:37:56 |+------+---------------------+1 row in set (0.00 sec)mysql> select * from table2;+------+---------------------+| col1 | ts2                 |+------+---------------------+| test | 2013-05-17 09:38:03 |+------+---------------------+1 row in set (0.01 sec)mysql> update table1 set col1='test1' where col1 = 'test';Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from table1;+-------+---------------------+| col1  | ts1                 |+-------+---------------------+| test1 | 2013-05-17 09:44:28 |+-------+---------------------+1 row in set (0.00 sec)mysql> select * from table2;+-------+---------------------+| col1  | ts2                 |+-------+---------------------+| test1 | 2013-05-17 09:38:03 |+-------+---------------------+1 row in set (0.00 sec)

我希望 ts2 也会更新。这是预期的行为吗?

最佳答案

这是MySQL的一个严重问题。

如果您尝试使用on updateon delete 触发器,同样适用。正如预期的那样,那些甚至应该在外键更新或删除时触发,但它们没有。

对此没有简单的解决方法。

这是近 10 年前首次报告的严重 ACID 合规性故障,至今仍未修复。阅读this bug report .

关于mysql - 外键更新时不更新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612005/

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