ETL (抽出、変換、読み込み) を実行する Python スクリプトを実行しており、すべての psql クエリを 1 つのトランザクションに入れています。トランザクションは次のとおりです。
conn = psycopg2.connect(...)
try:
cur = conn.cursor() #q1
cur.execute("create temp table tt (like t INCLUDING DEFAULTS)") #q2
cur.execute("copy tt from '/file.csv' DELIMITER ',' CSV HEADER ") #q3
cur.execute("...") #q4, update t based on data from tt
conn.commit()
except:
conn.rollback()
q4 を実行するとテーブルがロックされることはわかっていますが、トランザクション全体 (接続からコミットまで) でテーブルがロックされるかどうかはわかりません。
テーブルがロックされているかどうかをテストする方法はありますか? 現在、データはあまりありません (約 100 行)。
どうもありがとう!