3
このようなSQLがあります1つのSQL文は常にinnodbでアトミックですか?
UPDATE xxx SET num = num -1 WHERE num> 0;
トランザクション文がなくても、これはアトミックな操作ですか?
このSQLでは、numフィールドが常に非負であることを確認できますか?
このようなSQLがあります1つのSQL文は常にinnodbでアトミックですか?
UPDATE xxx SET num = num -1 WHERE num> 0;
トランザクション文がなくても、これはアトミックな操作ですか?
このSQLでは、numフィールドが常に非負であることを確認できますか?
自動コミットを有効にすると、それはアトミックに実行されます。自動コミットを無効にしない限り、すべての文は単一のトランザクションになります。
デフォルトで自動コミットが有効になっているため、通常はトランザクションを開始するためにSTART TRANSACTIONが必要です。
このSQLでは、numフィールドが常に非負であることを確認できますか? – jilen
はい、そうです。このクエリから否定的な結果が得られた場合は、自動コミットが有効になっていることを確認する必要があります。 'select @@ autocommit;は1を返します。 –
はたくさん考えます。自動コミットは実際に有効になっています。私はシステムが同時にvisted中に負の数が表示されないようにするために、このSQLを使用します – jilen