結合を使用したSQL問合せでは、トランザクションを使用する必要がありますか?私のようなものを考えていた結合クエリのトランザクションが必要ですか?
:
Delete table1, table2, table3
FROM table1 INNER JOIN table2 ON(...)
LEFT JOIN table3 ON (...)
WHERE table1.column = something...
(私は構文が100%正しいかどう知らないが、私はとにかくそれを理解していることを推測する)
はそのすべてではない任意の危険性があります削除すべき行は削除されませんか?
ありがとうございます!
これは、InnoDBテーブルに影響を与える文にのみ当てはまります。例えば、 MyISAMテーブルはアトミックではなく、テーブルの半分しか削除しないかもしれません。 –
@a_horse_with_no_name - これは、ACIDテーブルに対してのみ正しいことに同意します。しかし、私はMyISAMテーブルの経験がないので、トランザクションがそのシナリオに役立つかどうかはわかりません。 – SWeko
@SWeko場合によっては、ロールバックされません。とにかくMySQL v5.1(http://bugs.mysql.com/bug.php?id=45309を参照) – mattytommo