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

可能なPostgres行ロックを解放する方法は?

    ロックを見ることができます。

    pg_locksを直接使用するよりも少し簡単にするためのビューを次に示します。

    CREATE OR REPLACE VIEW public.active_locks AS 
     SELECT t.schemaname,
        t.relname,
        l.locktype,
        l.page,
        l.virtualtransaction,
        l.pid,
        l.mode,
        l.granted
       FROM pg_locks l
       JOIN pg_stat_all_tables t ON l.relation = t.relid
      WHERE t.schemaname <> 'pg_toast'::name AND t.schemaname <> 'pg_catalog'::name
      ORDER BY t.schemaname, t.relname;
    

    次に、ビューから選択するだけです:

    SELECT * FROM active_locks;
    

    そしてそれを殺す:

    SELECT pg_cancel_backend('%pid%');
    

    その他の解決策:http://wiki.postgresql.org/wiki/Lock_Monitoring



    1. 異なるスキーマから2つのテーブルをクエリする

    2. PostgreSQLのレプリケーショントポロジの変更の実行

    3. MariaDBで日付に日を追加する8つの方法

    4. MariaDBでのINSTR()のしくみ