我正在运行一个 python 脚本来执行 ETL(提取、转换、加载),并将所有 psql 查询放在一个事务中。这是交易:
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 行)..
非常感谢!