仅使用默认值将行插入Postgresql表

问题:有没有办法在PostgreSQL表中使用所有列的默认值插入行而不指定任何列名?

背景:如果我有一个包含两列的表都有默认值(或者只是接受NULL),我可以在插入行时省略列名,如果我希望该列的值为默认值.例如:

CREATE TABLE test_table ( column1 TEXT,column2 TEXT );

我可以通过仅指定column1或column2的值来插入表中,并且将使用默认值填充缺失的列(在这种情况下为NULL):

INSERT INTO test_table (column1) VALUES ('foo');
INSERT INTO test_table (column2) VALUES ('bar');

以上将导致两行:[(‘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;

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...