0

テーブル A への外部キー参照 (ON UPDATE CASCADE に設定) を持つテーブル B があり、

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 クエリの結果として update イベントを発生させず、delete のみを発生させます。理由は次のとおりです。

REPLACE は INSERT とまったく同じように機能しますが、テーブル内の古い行が PRIMARY KEY または UNIQUE インデックスの新しい行と同じ値を持つ場合、新しい行が挿入される前に古い行が削除される点が異なります。

( MySQL 5.0 リファレンス マニュアルより)

ON UPDATE CASCADE ON DELETE SET NULL で設定された外部キーがあり、外部テーブルの主キーに REPLACE を実行すると、関連するテーブルの外部キーが NULL に設定されます。

于 2011-02-04T22:18:31.667 に答える