将行插入到只有默认值的Postgresql表中

将行插入到只有默认值的Postgresql表中,postgresql,Postgresql,问题:有没有一种方法可以在PostgreSQL表中插入一行,使用所有列的默认值,而不指定任何列名 背景:如果我有一个表,其中有两列都有默认值(或简单地接受NULL),如果我希望该列的值是默认值,我可以在插入行时省略列名。例如: CREATE TABLE test_table ( column1 TEXT, column2 TEXT ); 我可以通过只为column1或column2指定一个值来插入到表中,缺少的列将填充默认值(在这种情况下为NULL): 上述内容将导致两行:[('foo',NU

问题:有没有一种方法可以在PostgreSQL表中插入一行,使用所有列的默认值,而不指定任何列名

背景:如果我有一个表,其中有两列都有默认值(或简单地接受NULL),如果我希望该列的值是默认值,我可以在插入行时省略列名。例如:

CREATE TABLE test_table ( column1 TEXT, column2 TEXT );
我可以通过只为column1或column2指定一个值来插入到表中,缺少的列将填充默认值(在这种情况下为NULL):

上述内容将导致两行:[('foo',NULL),(NULL,'bar')]。但是,如果我想为这两个列使用默认值,似乎必须至少指定一个列名并显式地为其指定默认值。以下命令均为合法命令:

INSERT INTO test_table (column1) VALUES (DEFAULT);
INSERT INTO test_table (column2) VALUES (DEFAULT);
INSERT INTO test_table (column1, column2) VALUES (DEFAULT, DEFAULT);
我无法创建允许我忽略所有列名的有效命令。以下企图都是非法的:

INSERT INTO test_table;
INSERT INTO test_table () VALUES ();

有没有办法做到这一点,还是明确禁止?我找不到这样一个案例的任何文档。谢谢

我发现这个用例有特殊的语法:

INSERT INTO test_table DEFAULT VALUES;
INSERT INTO test_table DEFAULT VALUES;