Postgresql
在並行事務中使用相同的臨時表名安全嗎?
使用 postgreSQL 10 或 11,創建具有相同名稱的臨時表是否安全,每個表都攜帶不同的數據?我不打算在任何會話/連接/事務之間共享數據。名稱本身並不重要,但我想避免為需要此類中間表的每個並發查詢生成隨機名稱的麻煩。
臨時表只用於不同的
SELECT
查詢。它將在每個帶有該ON COMMIT DROP
子句的事務結束時刪除。PostgreSQL文件指出:
當臨時表存在時,同名的現有永久表對目前會話不可見,除非它們使用模式限定名稱進行引用。
我不清楚這是否也適用於臨時表。
文件意味著:
- 如果您有永久表 TABLE_A
- 然後創建一個同名的臨時表 TABLE_A,
您的程式碼將看不到永久表。
但是您可以通過將模式添加到名稱來從永久表中請求數據 - schema_name.table_name。
回答您的問題 - 是的,它是安全的。