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