2009/4/2 Alisson Viegas <[email protected]>: > Boa tarde, pessoal. > > Não consigo entender o por quê do erro abaixo: > > ERROR: there is no unique constraint matching given keys for referenced > table "cfop" > > > > Alguém pode me explicar. > > As tabelas são: > > > > CREATE TABLE adm.cfop ( > > codigo serial NOT NULL, > > CONSTRAINT pk_adm_cfop_codigo PRIMARY KEY (codigo), > > cfop varchar(4) NOT NULL, > > CONSTRAINT un_adm_cfop_cfop UNIQUE (cfop,natureza), > > natureza varchar(100) NOT NULL, > > imposto boolean, > > estoque boolean, > > financeiro boolean > > ); > > > > CREATE TABLE tra.ctrc ( > > codigo serial NOT NULL, > > CONSTRAINT pk_tra_ctrc_codigo PRIMARY KEY (codigo), > > empresa integer NOT NULL, > > CONSTRAINT fk_tra_ctrc_emp FOREIGN KEY (empresa) REFERENCES > adm.emp (codigo), > > numero numeric(6) NOT NULL, > > CONSTRAINT ck_tra_ctrc_numero CHECK (numero > 0), > > modelo varchar(2), > > serie varchar(3), > > notas varchar(254) NOT NULL, > > cfop varchar(4) NOT NULL, > > CONSTRAINT fk_tra_ctrc_cfop FOREIGN KEY (cfop) REFERENCES > adm.cfop (cfop), > > …
Uma chave estrangeira tem que ser única. Em adm.cfop você definiu como unique o par (cfop,natureza) e não apenas cfop. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
