我正在学习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;