2

我有两个由外键约束链接的表。我想更改一个 ID 字段,但由于外键约束,以下代码失败:

UPDATE A SET id = 1479 WHERE id = 2103;
UPDATE B SET Aid = 1479 WHERE Aid = 2103;

我知道我可以设置ON CASCADE为自动执行此操作,但是如何根据具体情况进行设置呢?

4

2 回答 2

4

通过禁用外键检查并在事务中运行所有内容。

START TRANSACTION;
SET FOREIGN_KEY_CHECKS = 0;
UPDATE A SET id = 1479 WHERE id = 2103;
UPDATE B SET Aid = 1479 WHERE Aid = 2103;
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
于 2012-09-29T05:46:30.713 回答
1

采用

SET FOREIGN_KEY_CHECKS=0;

在您的更新查询之前。

于 2012-09-29T05:49:18.253 回答