PostgreSQL仅含自增ID的表插入并返回ID的语法问题
PostgreSQL中仅含自增ID的表使用INSERT RETURNING的报错解决方法
在PostgreSQL中,带RETURNING子句的INSERT语句可以返回插入的结果,示例如下:
INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool') RETURNING id;
执行后输出:
| id | ------ | 1 |
当表仅包含自增ID字段时,执行INSERT INTO my_ids RETURNING id;会报错:
Invalid syntax near RETURNING
这是因为PostgreSQL要求INSERT语句在未指定列列表且无VALUES子句时,语法不合法。针对这类场景,有两种修正方式:
方式一:使用
DEFAULT VALUES子句
明确让数据库使用所有字段的默认值(自增ID的默认值为序列生成的下一个值),语句如下:INSERT INTO my_ids DEFAULT VALUES RETURNING id;方式二:显式指定列列表
即使只有自增ID一个字段,也可显式列出列名并配合DEFAULT使用,语句如下:INSERT INTO my_ids (id) VALUES (DEFAULT) RETURNING id;
内容的提问来源于stack exchange,提问作者ar099968
相关产品推荐
相关产品推荐

