首頁 >資料庫 >mysql教程 >如何在PostgreSQL中高效建立臨時表?

如何在PostgreSQL中高效建立臨時表?

Patricia Arquette
Patricia Arquette原創
2025-01-03 03:45:39928瀏覽

How to Efficiently Create Temporary Tables in PostgreSQL?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn