PostgresQL 自定义序列

PostgresSQL custom sequence

我的 nextval 函数有问题,我的数据库中有一个名为 InternalCodes 的自定义序列,当我想像这样插入时:

insert into "Membership"
  ("Name", "Code", "Price", "Caducity", "Status", "Type")
values
  ('asd', nextval("InternalCodes"), 1, 2, true, 0);

PostgreSQL returns 我出现以下错误:

org.jkiss.dbeaver.model.sql.DBSQLException: SQL Error [42703]: ERROR: column does not exist «InternalCodes»

您需要使用单引号而不是双引号:

test=# create sequence seq_test;
test=# select nextval("seq_test");
ERROR:  column "seq_test" does not exist
LINE 1: select nextval("seq_test");
                       ^
test=# select nextval('seq_test');
nextval 
---------
       1

在你的情况下,由于你的序列名称包含大写字母,你实际上需要同时使用:

insert into "Membership"("Name", "Code", "Price","Caducity","Status","Type") 
values('asd', nextval('"InternalCodes"'), 1,2,true,0)
;

您需要使用字符串引号:

nextval('"InternalCodes"')