PostgreSQL – 临时表名
在 PostgreSQL 中,临时表可以与永久表同名,尽管不推荐这样做。当用户创建一个与永久表同名的临时表时,在临时表被移除之前,用户无法访问该永久表。
例子:
首先,创建一个名为customers
的表:
CREATE TABLE customers(id SERIAL PRIMARY KEY, name VARCHAR NOT NULL);
其次,创建一个同名的临时表: customers
:
CREATE TEMP TABLE customers(customer_id INT);
现在查询客户表中的数据,如下所示:
SELECT * FROM customers;
输出:
在这一阶段,PostgreSQL 访问的是临时表 customer 而不是永久表。从现在开始,当临时表customers
被专门移除customers
test
数据库中的表,您将只能看到临时表customers,而不是下面的永久表:
注意: PostgreSQL 在特殊模式中创建临时表,因此,您不能在 CREATE TEMP TABLE 语句中指定模式。
现在,如果您使用以下命令列出表:
\dt
结果如下图所示:
输出显示customers
临时表pg_temp_3
。