临时表

临时表是会话级表,只在用户会话期间存在,常用于存储中间计算结果或临时数据。

临时表的特点:

  • 生存周期:临时表只在当前会话中存在,连接断开后表会自动销毁。
  • 对其它会话不可见:不同的会话可以使用相同的临时表名,彼此独立。
  • 不占用实际存储:仅存储在内存中,性能较高。

以下是临时表的用法:

创建临时表

使用 CREATE TEMP TABLECREATE TEMPORARY TABLE:

CREATE TEMP TABLE temp_table (
    id SERIAL PRIMARY KEY,
    name TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

维护临时表

可以像普通表一样插入数据:

INSERT INTO temp_table (name) VALUES ('Alice'), ('Bob');

查询数据:

SELECT * FROM temp_table;

更新或删除数据:

UPDATE temp_table SET name = 'Charlie' WHERE name = 'Alice';
DELETE FROM temp_table WHERE name = 'Bob';

若重新创建已存在的临时表(如重建临时表的逻辑),可加 IF EXISTS:

DROP TABLE IF EXISTS temp_table;