如何在PostgreSQL中使用VALUES创建临时表

我正在学习Postgresql并试图找出如何创建临时表或WITH声明,可以用来代替常规表,以进行调试.

我查看了CREATE TABLE的文档,它说VALUES可以用作查询,但没有给出任何示例;其中链接的VALUES子句的文档也没有例子?

所以,我写了一个简单的测试如下:

DROP TABLE IF EXISTS lookup;
CREATE TEMP TABLE lookup (
  key integer,val numeric
) AS
VALUES (0,-99999),(1,100);

但是Postgresql(9.3)正在抱怨

Syntax error at or near “AS”

我的问题是:

>我如何修复上述声明?
>我如何调整它以用于WITH块?

提前致谢.

如果您只想从某些值中进行选择,而不是仅仅创建一个表并插入其中,您可以执行以下操作:
WITH  temp (k,v) AS (VALUES (0,-9999),100)) 
SELECT * FROM temp;

要以类似的方式实际创建临时表,请使用:

WITH  vals (k,100)) 
SELECT * INTO temporary table  temp FROM vals;

相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个...
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8...
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读...
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中...
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的...
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹...