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

如何在 SQL 中高效建立和填充臨時表?

DDD
發布: 2025-01-02 19:13:41
原創
632 人瀏覽過

How Can I Efficiently Create and Populate a Temporary Table in SQL?

在SQL 中建立臨時表:快速概述

您的查詢旨在建立一個名為「temp1」的臨時表並用資料填充它具有特定的“register_type”(“%gen%”)。但是,問題是由於使用“CREATE TABLE”而不是“CREATE TABLE AS”而產生的。

正確的方法

建立臨時表並填充它對於查詢中的數據,您應該使用「CREATE 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;
登入後複製

This命令在記憶體中建立一個臨時表,並用查詢結果行填充它。它類似於常規表,但駐留在 RAM 中。

了解 PostgreSQL 中的臨時表

臨時表在目前會話中可見,並在會話終止時消失。或者,您可以指定“ON COMMIT DROP”,讓它們在事務結束時消失。

臨時表的替代方案

對於動態臨時表,請考慮使用“CREATE VIEW”,提供持續更新的資料快照。但是,對於靜態快照,首選“CREATE TABLE AS”。

雖然「SELECT INTO」也可以建立臨時表,但不鼓勵這樣做。相反,請使用“CREATE TABLE AS”。 “CREATE TABLE LIKE”僅複製表結構,而不複製資料。

對於僅在單一查詢中使用的臨時表,CTE 或子查詢中的「派生表」提供了輕量級替代方案。

以上是如何在 SQL 中高效建立和填充臨時表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板