私はこれについての公式のMySQLの説明を見つけることができないので、私はここにそれを投げたいです。 MySQLの2つのテーブル間に外部キー制約がある場合、tableAは親テーブル、tableBは子テーブルです。親テーブルAでは、 "UPDATE CASCADE ON DELETE CASCADE"を使用して、更新/削除のアクションをMySQLが自動的に子テーブルBに適用できるようにします。トランザクションのmysql外部キー更新制約?
私の質問は次のとおりです:子テーブルと親テーブルへの更新がトランザクション内にあるかどうか。 または次の文を使用すると、違いはありますか?
方法1: UPDATE tableA SET col1 = "A"およびcol2 = "B";
方法2: 開始。 UPDATE tableA SET col1 = "A"およびcol2 = "B"; コミットします。
ここで、method1の問題を満たしました。tableAが更新されたとき、tableBが対応する列を更新するのに非常に時間がかかることがあります(トランザクションではありません)。 誰も前に同様の問題に遭遇しましたか?
2つのテーブルは両方ともinnoDBにあります。私が理解するように、各文はInnoDBのトランザクションです。その場合、なぜmehtod1では、2つのテーブルの更新がアトミックではないのですか? – WilliamLou
カスケードされた更新は初期操作の一部であるため、アトミックになります。 –
これについて話しているMySQLの文書は見つかりません。そして、自分の実験に基づいて、メソッド1では、2つのテーブルの更新はアトミックではありません。 – WilliamLou