Criar Chave estrangeira numa tabela com chave primaria composta.

PostgreSQL

08/07/2014

Oi galera, baseado nas tabelas abaixo tenho na segunda tabela (vigencia), 2 chaves primárias onde uma deve referenciar tabela unidadeGestora pelo campo uniaddeGestora da tabela vigencia com ao campo cnpj da tabela unidadeGestora. O problema é como faço na tabela vigencia para ter um FOREIGN KEY(unidadeGestora) REFERENCES unidadeGestora(cnpj) uma vez que na tabela vigencia possui chave primária multipla?

CREATE TABLE unidadeGestora(
cnpj cd_cpfCNPJ NOT NULL PRIMARY KEY,
empresa VARCHAR(80) NOT NULL,
uf VARCHAR(02) NOT NULL,
) WITH (OIDS=FALSE);

/* TABELA ANO DE VIGÊNCIA */
CREATE TABLE vigencia(
ano SMALLINT NOT NULL CHECK (ano > 2000),
unidadeGestora cd_cpfCNPJ NOT NULL,
usuario VARCHAR(50) NOT NULL,
PRIMARY KEY (ano, unidadeGestora),
CONSTRAINT usuario_fk FOREIGN KEY (usuario) REFERENCES usuarios(email)
) WITH (OIDS=FALSE);
Adenes Junior

Adenes Junior

Curtidas 0

Melhor post

Ronaldo Lanhellas

Ronaldo Lanhellas

08/07/2014

Basta adicionar a seguinte linha no seu DDL acima:

CONSTRAINT fk1 FOREIGN KEY (unidadeGestora) REFERENCES unidadeGestora(cnpj)


Ele vai criar uma chave referenciando unidadeGestora com o campo cnpj, testei aqui e funcionou.
GOSTEI 2
POSTAR