1

問題は、「begin-commit」ブロックにラップされていないクエリに関するものですが、postgres、mysql (少なくとも innodb エンジン) でアトミックな単純な挿入と更新に関するものです。では、これはどのように内部的に実装されているのでしょうか?

4

1 に答える 1

1

すべての DML ステートメントは、明示的なトランザクション (BEGIN...COMMIT) または暗黙的なトランザクションのいずれかのトランザクションのコンテキストで実行されます。これはすべての SQL dbms に当てはまると確信しています。それは確かに PostgreSQL に当てはまります

デフォルト (BEGIN なし) では、PostgreSQL は「自動コミット」モードでトランザクションを実行します。つまり、各ステートメントは独自のトランザクションで実行され、コミットはステートメントの最後で暗黙的に実行されます (実行が成功した場合、そうでない場合はロールバックが行われます)。 )。

于 2013-07-22T13:57:00.750 に答える