如何在PostgreSQL表中执行无值INSERT并返回插入行
实现无需指定列值的插入并返回结果
你的members.tbl_member表结构如下(来自DbDiagram):
table members.tbl_member as U { member_id int [pk, increment] date_created timestamp [not null, default: `CURRENT_DATE`] date_modified timestamp [not null, default: `CURRENT_DATE`] date_security timestamp [not null, default: `CURRENT_DATE`] }
要实现不指定任何时间戳列值的插入并返回插入行,有两种简单的写法:
方法一:使用DEFAULT VALUES
这个语句会让所有列自动使用各自的默认规则(自增主键自动生成,时间戳列用CURRENT_DATE默认值):
INSERT INTO members.tbl_member DEFAULT VALUES RETURNING member_id AS MemberID, date_created AS DateCreated, date_modified AS DateModified, date_security AS DateSecurity;
方法二:显式指定列并使用DEFAULT关键字
如果需要更明确地控制列,可以列出所有列,并用DEFAULT让数据库自动处理每个列的值:
INSERT INTO members.tbl_member (member_id, date_created, date_modified, date_security) VALUES (DEFAULT, DEFAULT, DEFAULT, DEFAULT) RETURNING member_id AS MemberID, date_created AS DateCreated, date_modified AS DateModified, date_security AS DateSecurity;
两种方式都能满足你的需求,执行后会返回插入的完整行数据,包含自动生成的主键和默认时间戳。
内容的提问来源于stack exchange,提问作者AlwaysNeedingHelp
相关产品推荐
相关产品推荐

