无法在非默认架构中创建包含序列的表

时间:2016-11-25 15:07:55

标签: postgresql schema sequence

我试图创建一个系统,我想要对数据进行多年排序(使用模式),例如现在我有一个名为datos_2016的模式然后我创建一个名为{ seq_datos

当我尝试创建表datos并设置cdata的序列时,它说

  

"出现错误:错误关系" seq_data"没有退出"

但是,如果我创建架构" public"然后在那里创建序列,不会发生错误(表已成功创建)。

为什么我不能在另一个模式中创建序列?

SQL CODE:

CREATE TABLE datos_2016.data
(
   cdata integer NOT NULL DEFAULT nextval('seq_data'), 
   CONSTRAINT fk_cdata PRIMARY KEY (cdata) USING INDEX TABLESPACE sistema_index
) 
WITH (
  OIDS = FALSE
)

TABLESPACE sistema_data;

序列码:

CREATE SEQUENCE datos_2016.seq_data
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE datos_2016.seq_data
  OWNER TO postgres;
GRANT ALL ON SEQUENCE datos_2016.seq_data TO public;
GRANT ALL ON SEQUENCE datos_2016.seq_data TO postgres;

2 个答案:

答案 0 :(得分:1)

您需要完全限定序列名称:

CREATE TABLE datos_2016.data
(
   cdata integer NOT NULL DEFAULT nextval('datos_2016.seq_data'), 
   ....
);

答案 1 :(得分:0)

尝试一下 nextval('datos_2016."seq_data"')