在SQL 中建立臨時表
當嘗試建立基於特定暫存器類型選擇資料的臨時表時,使用者可能會遇到錯誤。要解決這個問題,了解正確的語法及其限制至關重要。
在PostgreSQL 中,可以使用CREATE TEMP TABLE AS 語法建立臨時表:
CREATE TEMP TABLE temp1 AS SELECT dataid , register_type , timestamp_localtime , read_value_avg FROM rawdata.egauge WHERE register_type LIKE '%gen%' ORDER BY dataid, timestamp_localtime;
如果temp_buffers 設定允許,臨時快照並駐紮在資料的靜態快照留在RAM 中。它們是特定於會話的,並在結束時消失,除非使用 ON COMMIT DROP 創建,這會在事務結束時刪除它們。
或者,可以使用 CREATE VIEW。然而,它們的行為和用法與靜態臨時表有很大不同。
雖然 SQL 標準包括用於建立臨時表的SELECT INTO,但不鼓勵使用它,而建議使用 CREATE TABLE AS 。此外,CREATE TABLE LIKE (...) 僅複製表結構而不複製數據,而 CTE 或子查詢中的派生表為單個查詢中使用臨時數據提供更少的開銷。
以上是如何在PostgreSQL中高效建立臨時表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!