我有一个名为 SEQ_TABLE 的表,它有两列:SEQ_NAME 和 ID
SEQ_NAME | ID
----------------------
SEQ_TABLE_10 | 1
SEQ_TABLE_20 | 5
Run Code Online (Sandbox Code Playgroud)
其中 ID 是 TABLE_10 和 TABLE_20 的 COLUMN_1 中的最大值
现在,我必须通过从SEQ_TABLE获取序列的下一个值来将新记录插入到 TABLE_10 中。
我编写的 PostgreSQL 查询如下:
INSERT INTO TABLE_10 (COLUMN_1, COLUMN_2, COLUMN_3) VALUES ((SELECT nextval(SEQ_TABLE)), 'Bangalore' ,NULL);
Run Code Online (Sandbox Code Playgroud)
当我执行上述查询时,出现以下错误: ********** 错误 **********
ERROR: column "SEQ_TABLE_10" does not exist
SQL state: 42703
Character: 99
Run Code Online (Sandbox Code Playgroud)
但是,以下查询在MySQL数据库中运行良好:
INSERT INTO TABLE_TABLE(COLUMN_1, COLUMN_2, COLUMN_3) VALUES ((SELECT nextval('TABLE_172_SEQ','true')), 'Bangalore' ,NULL);
Run Code Online (Sandbox Code Playgroud)
在PostgreSQL DB中实现它的精确 Postgres 查询是什么?
您想要创建一个序列,而不是表(SEQ_TABLE)请参考此链接 https://www.postgresql.org/docs/8.1/static/sql-createsequence.html
例如。
CREATE SEQUENCE serial START 101;
SELECT nextval('serial');
create table MyTable(col1 int,col2 varchar(20));
INSERT INTO MyTable VALUES (nextval('serial'), 'nothing');
Run Code Online (Sandbox Code Playgroud)