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

clu*_*clu 2 sql postgresql sql-insert

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

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

INSERT INTO pages(id) VALUES(DEFAULT) RETURNING id;
Run Code Online (Sandbox Code Playgroud)

我为什么不能这样做:

INSERT INTO pages RETURNING id;
Run Code Online (Sandbox Code Playgroud)

只是好奇。

Jai*_*sus 6

您可以使用:

INSERT INTO test DEFAULT VALUES returning id;
Run Code Online (Sandbox Code Playgroud)

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

PostgreSQL的语法非常强硬。

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


The*_*ler 5

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

INSERT INTO pages VALUES(DEFAULT) RETURNING id;
Run Code Online (Sandbox Code Playgroud)