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

Responder a