

相関副参照でSELECTしたレコードをDELETEするSQLについて。SELECTしてる間はロックしないようにする（純粋にDELETEのときだけロックする）方法はありませんか？


CC BY-SA 4.0
2022-12-12T23:54:14.233
92731
2023-06-08T15:57:02.560
50539
question
sql database db2
相関副参照でSELECTしたレコードをDELETEするSQLについて。


相関サブクエリを使用して、`SELECT` ステートメントを使用してターゲット レコードを取得します。  
一意の識別子を使用して、取得したレコードに対して `SELECT` ステートメントを再度実行します。  
たとえば、このコードは次のようになります。

[code]

    DELETE FROM テーブル名
    WHERE 識別子 IN (
        SELECT 識別子
        FROM テーブル名
        WHERE 条件
        FOR UPDATE
    );
    
    DELETE FROM users
    WHERE id IN (
        SELECT id
        FROM users
        WHERE age < 20
        FOR UPDATE
    );
    
[/code]


CC BY-SA 4.0
2023-06-08T13:44:03.640
95151
2023-06-08T15:57:02.560
2023-06-08T15:57:02.560
58577
58577
92731
answer