找不到 postgres 序列
Cant find postgres sequence
Hibernate 找不到我的序列,异常是:
Caused by: org.postgresql.util.PSQLException:
ERROR: relation "default.menuitem_menuitem_id_seq" does not exist
好的,我自己试试,连接数据库:
mydb=# CREATE SEQUENCE "default.menuitem_menuitem_id_seq" INCREMENT BY 1
MINVALUE 1 NO MAXVALUE START WITH 1 NO CYCLE;
ERROR: relation "default.menuitem_menuitem_id_seq" already exists
mydb=# select nextval('default.menuitem_menuitem_id_seq');
ERROR: relation "default.menuitem_menuitem_id_seq" does not exist
LINE 1: select nextval('default.menuitem_menuitem_id_seq');
我有序列吗?它的名字是什么?
说明
您所做的是在当前模式(可能是 public
)中实际创建了一个名称为 "default.menuitem_menuitem_id_seq"
的序列。
信息与方法
default
是 ANSI SQL 标准和 PostgreSQL.
中的保留关键字
Key Word PostgreSQL SQL:2011 SQL:2008 SQL-92
DEFAULT reserved reserved reserved reserved
如果你想 CREATE SEQUENCE
在你的模式中,它只能有一个名称 "default"
那么你需要:
CREATE SEQUENCE "default".menuitem_menuitem_id_seq INCREMENT BY 1
MINVALUE 1 NO MAXVALUE START WITH 1 NO CYCLE;
此处不需要在序列名称周围添加引号。
必须分别对每个限定符进行引用:
CREATE SEQUENCE "default"."menuitem_menuitem_id_seq"
INCREMENT BY 1
MINVALUE 1 NO MAXVALUE
START WITH 1
NO CYCLE;
否则将在当前架构中创建名为 default.menuitem_menuitem_id_seq
的序列
Hibernate 找不到我的序列,异常是:
Caused by: org.postgresql.util.PSQLException:
ERROR: relation "default.menuitem_menuitem_id_seq" does not exist
好的,我自己试试,连接数据库:
mydb=# CREATE SEQUENCE "default.menuitem_menuitem_id_seq" INCREMENT BY 1
MINVALUE 1 NO MAXVALUE START WITH 1 NO CYCLE;
ERROR: relation "default.menuitem_menuitem_id_seq" already exists
mydb=# select nextval('default.menuitem_menuitem_id_seq');
ERROR: relation "default.menuitem_menuitem_id_seq" does not exist
LINE 1: select nextval('default.menuitem_menuitem_id_seq');
我有序列吗?它的名字是什么?
说明
您所做的是在当前模式(可能是 public
)中实际创建了一个名称为 "default.menuitem_menuitem_id_seq"
的序列。
信息与方法
default
是 ANSI SQL 标准和 PostgreSQL.
Key Word PostgreSQL SQL:2011 SQL:2008 SQL-92
DEFAULT reserved reserved reserved reserved
如果你想 CREATE SEQUENCE
在你的模式中,它只能有一个名称 "default"
那么你需要:
CREATE SEQUENCE "default".menuitem_menuitem_id_seq INCREMENT BY 1
MINVALUE 1 NO MAXVALUE START WITH 1 NO CYCLE;
此处不需要在序列名称周围添加引号。
必须分别对每个限定符进行引用:
CREATE SEQUENCE "default"."menuitem_menuitem_id_seq"
INCREMENT BY 1
MINVALUE 1 NO MAXVALUE
START WITH 1
NO CYCLE;
否则将在当前架构中创建名为 default.menuitem_menuitem_id_seq
的序列