我在Postgres中有一个表,该表仅具有默认列值(id,created_at)。
我可以插入此表的唯一方法是
INSERT INTO pages(id) VALUES(DEFAULT) RETURNING id;
为什么我不能这样做:
INSERT INTO pages RETURNING id;
很好奇。
答案 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;