0

如果我的表 B 具有对表 A 的外键引用(设置为 ON UPDATE CASCADE)并且我运行

LOAD DATA INFILE file.txt REPLACE INTO TABLE A;

命令,引用会正确更新吗?

请注意,我不是在谈论 ON DELETE CASCADE;我知道如果我有 REPLACE 命令将删除表 B 中的记录。

4

2 回答 2

0

在寻找类似的答案后,我实际上来到了这里。只要您为约束设置了 ON DELETE CASCADE ,看起来 REPLACE INTO 仍会删除项目。

http://www.mysqlperformanceblog.com/2007/01/18/insert-on-duplicate-key-update-and-replace-into/

于 2010-08-22T00:17:48.363 回答
0

MySQL 不会因为替换查询而触发更新事件,只会触发删除。原因如下:

REPLACE 的工作方式与 INSERT 完全相同,只是如果表中的旧行与 PRIMARY KEY 或 UNIQUE 索引的新行具有相同的值,则在插入新行之前删除旧行。

(来自MySQL 5.0 参考手册

我有一个使用 ON UPDATE CASCADE ON DELETE SET NULL 设置的外键,每当我对外表的主键执行 REPLACE 时,我的相关表中的外键都会设置为 NULL。

于 2011-02-04T22:18:31.667 回答