Postgresql Can';t使用非默认模式中的序列创建表
我正在尝试创建一个系统,在这个系统中,我想对多年的数据进行排序(使用模式),例如,现在我有一个名为Postgresql Can';t使用非默认模式中的序列创建表,postgresql,schema,sequence,Postgresql,Schema,Sequence,我正在尝试创建一个系统,在这个系统中,我想对多年的数据进行排序(使用模式),例如,现在我有一个名为datos\u 2016的模式,然后我创建了一个名为seq\u datos的序列 当我尝试创建表datos并设置cdata的顺序时,它会显示 出现错误:错误关系“seq_data”不存在 但是如果我创建模式“public”,然后在那里创建序列,就不会发生错误(表创建成功) 为什么我不能在另一个模式中创建序列 SQL代码: CREATE TABLE datos_2016.data ( cdata
datos\u 2016
的模式,然后我创建了一个名为seq\u datos
的序列
当我尝试创建表datos
并设置cdata
的顺序时,它会显示
出现错误:错误关系“seq_data”不存在
但是如果我创建模式“public”,然后在那里创建序列,就不会发生错误(表创建成功)
为什么我不能在另一个模式中创建序列
SQL代码:
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;
您需要完全限定序列名称:
CREATE TABLE datos_2016.data
(
cdata integer NOT NULL DEFAULT nextval('datos_2016.seq_data'),
....
);
创建表datos_2016.data
(
cdata integer NOT NULL默认值nextval('datos_2016.seq_data'),
....
);
您需要完全限定序列名称:
CREATE TABLE datos_2016.data
(
cdata integer NOT NULL DEFAULT nextval('datos_2016.seq_data'),
....
);
创建表datos_2016.data
(
cdata integer NOT NULL默认值nextval('datos_2016.seq_data'),
....
);
试试这个
nextval('datos_2016.“seq_data”)
试试这个
nextval('datos_2016.“seq_data”)
太好了,就是这样!我假设没有创建“public”模式不需要指定schemaGreat,就是这样!我假设没有创建“public”模式并不需要指定模式