我正在使用 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> 插入 table1 (col1) 值 ('test'); 查询正常,1 行受影响(0.00 秒) mysql> 插入 table2 (col1) 值 ('test'); 查询正常,1 行受影响(0.00 秒) mysql> 从表 1 中选择 *; +--------+----------+ | col1 | ts1 | +--------+----------+ | 测试 | 2013-05-17 09:37:56 | +--------+----------+ 一组中的 1 行(0.00 秒) mysql> 从表 2 中选择 *; +--------+----------+ | col1 | ts2 | +--------+----------+ | 测试 | 2013-05-17 09:38:03 | +--------+----------+ 一组中的 1 行(0.01 秒) mysql> 更新 table1 设置 col1='test1' 其中 col1 = 'test'; 查询正常,1 行受影响(0.00 秒) 匹配行:1 更改:1 警告:0 mysql> 从表 1 中选择 *; +--------+----------+ | col1 | ts1 | +--------+----------+ | 测试1 | 2013-05-17 09:44:28 | +--------+----------+ 一组中的 1 行(0.00 秒) mysql> 从表 2 中选择 *; +--------+----------+ | col1 | ts2 | +--------+----------+ | 测试1 | 2013-05-17 09:38:03 | +--------+----------+ 一组中的 1 行(0.00 秒)
我希望 ts2 也会更新。这是预期的行为吗?