我试图创建一个系统,我想要对数据进行多年排序(使用模式),例如现在我有一个名为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;
答案 0 :(得分:1)
您需要完全限定序列名称:
CREATE TABLE datos_2016.data
(
cdata integer NOT NULL DEFAULT nextval('datos_2016.seq_data'),
....
);
答案 1 :(得分:0)
尝试一下
nextval('datos_2016."seq_data"')