11

MySQL について質問がありますが、答えが見つかりません。MySQL では自動コミットがデフォルトでオンになっていることを知っています。1 回のトランザクションでコマンド ラインからいくつかの更新クエリを実行する必要がありますが、MySQL がそれらをどのように処理するかわかりません。私がこのようなものを持っている場合:

mysql -uroot -proot -e 'QUERY 1; QUERY 2; QUERY3'

1 つのトランザクションとして実行されますか、それとも MySQL は各ステートメントを個別に自動コミットしますか? 原子性を確保する必要があります。

4

2 に答える 2

4

パイプは素晴らしいアイデアです!

echo "START TRANSACTION;" > start.sql
echo "COMMIT;" > commit.sql

cat start.sql yourScript.sql commit.sql | mysql -uroot -proot

また

cat start.sql yourScript.sql - | mysql -uroot -proot

そのため、 yourScript の結果に応じて手動でロールバックをコミットできます

幸運を!

于 2015-10-23T07:55:43.623 に答える