我有两个由外键约束链接的表。我想更改ID字段,但由于外键约束,以下代码失败:
UPDATE A SET id = 1479 WHERE id = 2103;
UPDATE B SET Aid = 1479 WHERE Aid = 2103;
我知道我可以设置ON CASCADE
自动执行此操作,但我该如何根据具体情况进行此操作?
答案 0 :(得分:4)
通过disabling foreign key checks并运行事务中的所有内容。
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;
答案 1 :(得分:1)
使用
SET FOREIGN_KEY_CHECKS=0;
在更新查询之前。