postgresql nextval抛出错误关系不存在

时间:2017-12-12 08:30:50

标签: sql postgresql

我有以下sql:

 INSERT INTO in_api_settings ( 
   ENTITY_ID, 
   ACTIVE_START_DATE, 
   ACTIVE_END_DATE) 
 VALUES ( 
   nextval('in_api_settings_seq'), 
   current_date, 
   null)

当我执行它时,我得到错误

  

错误:关系“in_api_settings_seq”不存在

在Oracle上我使用IN_API_SETTINGS_SEQ.NEXTVAL,这很好用。我正在从Oracle合并到PostgreSQL,不知道我做错了什么。

2 个答案:

答案 0 :(得分:5)

中指定架构
nextval('in_api_settings_seq')

所以它会是

nextval('schema_name.in_api_settings_seq')

也从序列命名我相信它是自动生成的,因此它将被指定为默认值,因此你可以尝试

INSERT INTO in_api_settings ( 
   ENTITY_ID, 
   ACTIVE_START_DATE, 
   ACTIVE_END_DATE) 
 VALUES ( 
   DEFAULT, 
   current_date, 
   null)

答案 1 :(得分:3)

对架构和序列使用单独的引号

SELECT NEXTVAL('"schema_name"."sequence_tbl"')

EG。 SELECT NEXTVAL('"Master_SHM"."ATTRIBUTE_ID_SEQ"');

 nextval
---------
       5
(1 row)