从Postgres 文档中INSERT
,默认关键字应该自动增加声明为串行的列。但是当我将它与 select 语句结合使用时,它会抛出一个错误
syntax error at or near "DEFAULT"
这是插入语句
insert into abc (id,date,serialnumber) (DEFAULT,select (data.date,data.serialnumber) from data)
从Postgres 文档中INSERT
,默认关键字应该自动增加声明为串行的列。但是当我将它与 select 语句结合使用时,它会抛出一个错误
syntax error at or near "DEFAULT"
这是插入语句
insert into abc (id,date,serialnumber) (DEFAULT,select (data.date,data.serialnumber) from data)
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并注意两个结果之间的差异。