没有任何列值的Postgres插入。都是默认的

时间:2019-04-30 15:02:18

标签: sql postgresql sql-insert

我在Postgres中有一个表,该表仅具有默认列值(id,created_at)。

我可以插入此表的唯一方法是

INSERT INTO pages(id) VALUES(DEFAULT) RETURNING id;

为什么我不能这样做:

INSERT INTO pages RETURNING id;

很好奇。

2 个答案:

答案 0 :(得分:6)

您可以使用:

INSERT INTO test DEFAULT VALUES returning id;

所有想要的解释都在这里:https://www.postgresql.org/docs/current/sql-insert.html

PostgreSQL的语法很强。

  

默认值:    所有列均将填充其默认值。 (此格式不允许使用OVERRIDING子句。)

希望这会有所帮助;)

答案 1 :(得分:1)

您需要values关键字,否则您如何知道要插入多少行?但是,您不需要字段名称,因此可以(非常)缩短查询时间:

INSERT INTO pages VALUES(DEFAULT) RETURNING id;