挿入などの操作を実行するときに mysql がコミットする必要があるかどうかは、ストレージ エンジンによって異なります。myisam などのトランザクションをサポートしていないエンジンの場合、コミットの有無は効果がありません。
推奨コース: MySQL チュートリアル 。
innodb などのトランザクションをサポートするエンジンの場合、トランザクションがトランザクションの自動送信 (つまりコミット) をサポートしているかどうかを知る必要があります。
データベースがサポートされているかどうかを確認するには、自動的にコミットされる場合は、mysql>show variables like '%autocommit%'; を使用して表示できますが、OFF の場合は自動的にコミットされず、手動のコミット操作が必要です (コマンドラインで直接「commit;」コマンドを実行できます)。そうでない場合は、自動的にコミットされます。
#送信データには、明示的送信、暗黙的送信、自動送信の 3 種類があります。
これら 3 つのタイプについては、以下で説明します。
すべての DML ステートメントは明示的に送信する必要があります。つまり、DML ステートメントの実行後に COMMIT を実行する必要があります。 DDL ステートメントなど、その他のステートメントは暗黙的に送信されます。つまり、これらの非 DML ステートメントを実行した後、データベースは CREATE TABLE などの暗黙的なコミットをすでに作成しています。スクリプトの実行後、テーブルが作成されるため、明示的なコミットを行う必要はなくなります。
以上がMySQL はコミットする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。