2

外部キー制約によってリンクされている 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 に答える