在 SQL 中创建临时表
您正在尝试创建临时表,但查询不起作用。原因如下:
使用 PostgreSQL 创建临时表的正确语法是:
CREATE TEMP TABLE table_name AS SELECT columns FROM table WHERE conditions;
这将执行 SELECT 语句并使用所选数据创建临时表。
在您的情况下,将查询更改为:
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;
记住,临时表仅在当前会话中可见,并且被丢弃在它的末尾。要创建在事务结束时删除的临时表,请使用 ON COMMIT DROP 而不是 TEMP。
如果您需要数据的动态表示,请考虑使用 CREATE VIEW 代替。它提供数据的实时视图,反映对基础表所做的更改。
或者,您可以使用派生表 (CTE) 或子查询进行单查询。与创建临时表相比,这些选项的开销较低。
以上是如何在PostgreSQL中正确创建和使用临时表?的详细内容。更多信息请关注PHP中文网其他相关文章!