sql >> データベース >  >> RDS >> Mysql

トランザクション中にMYSQLテーブルの行をロックする

    select ... for updateを使用する トランザクション内のクエリにより、必要なセマンティクスが得られるはずです。他の更新はロックされ、この同じロックを取得しようとする他のセッションは、コミットするまでブロックされます。

    START TRANSACTION
    SELECT * FROM piggybank WHERE id IN (1, 2) FOR UPDATE;
    SELECT amount FROM piggybank WHERE id = 2;
    UPDATE piggybank SET amount = amount + 5 WHERE id = 1;
    COMMIT
    



    1. コードでは非常に遅いが、SSMSでは速いクエリ

    2. 複数のテーブルを参照する外部キー

    3. Djangoでスキーマを使用する方法は?

    4. アイドル状態のPostgreSQL接続のタイムアウトはありますか?