Postgresql

在並行事務中使用相同的臨時表名安全嗎?

  • March 18, 2019

使用 postgreSQL 10 或 11,創建具有相同名稱的臨時表是否安全,每個表都攜帶不同的數據?我不打算在任何會話/連接/事務之間共享數據。名稱本身並不重要,但我想避免為需要此類中間表的每個並發查詢生成隨機名稱的麻煩。

臨時表只用於不同的SELECT查詢。它將在每個帶有該ON COMMIT DROP子句的事務結束時刪除。

PostgreSQL文件指出:

當臨時表存在時,同名的現有永久表對目前會話不可見,除非它們使用模式限定名稱進行引用。

我不清楚這是否也適用於臨時表。

文件意味著:

  • 如果您有永久表 TABLE_A
  • 然後創建一個同名的臨時表 TABLE_A,

您的程式碼將看不到永久表。

但是您可以通過將模式添加到名稱來從永久表中請求數據 - schema_name.table_name

回答您的問題 - 是的,它是安全的。

引用自:https://dba.stackexchange.com/questions/232384