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