2

Postgres 文档中INSERT,默认关键字应该自动增加声明为串行的列。但是当我将它与 select 语句结合使用时,它会抛出一个错误

syntax error at or near "DEFAULT"

这是插入语句

insert into abc (id,date,serialnumber) (DEFAULT,select (data.date,data.serialnumber) from data)
4

1 回答 1

3

DEFAULT只能作为VALUES子句中 INSERT 语句的“文字”。我不能在 SELECT 语句的列列表中使用,即使它用于INSERT.

要应用默认值,只需省略该列:

insert into abc (date,serialnumber) 
select date, serialnumber 
from data

有关示例,请参见此处:http ://sqlfiddle.com/#!12/d291a/1


另外:不要将列列表放入括号中。(a,b)与 Postgres不同a,b。第一个是具有两个属性的单个记录,第二个是两个不同的列。

在此处查看此 SQLFiddle 演示:http ://sqlfiddle.com/#!12/3a890/1并注意两个结果之间的差异。

于 2013-08-29T21:49:50.923 回答