Discussion:
Coluna referenciada
(too old to reply)
Beto Lima
2010-10-22 19:49:38 UTC
Permalink
Pessoal preciso fazer uma referencia de uma coluna com outra de outra tabela
mas ta me dando erro:
estou tentando assim:

alter table perguntas add CONSTRAINT perguntas_id_pergunta_fkey FOREIGN KEY
(id_pergunta)
REFERENCES gabaritos (id_pergunta) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE


ERRO: não há restrição de unicidade que corresponde com as colunas
informadas na tabela referenciada "gabaritos"
SQL state: 42830


CREATE TABLE perguntas
(
id_perg serial NOT NULL,
id_pergunta integer NOT NULL,
id_agenda integer NOT NULL,
CONSTRAINT perguntas_pkey PRIMARY KEY (id_perg)
)

CREATE TABLE gabaritos
(
id_gabarito serial NOT NULL,
id_agenda integer NOT NULL,
id_pergunta integer NOT NULL,
CONSTRAINT gabaritos_pkey PRIMARY KEY (id_gabarito)
)

A intenção é que quando remover uma pergunta, ele verificar qual é o
id_pergunta da tabela pergunta e também remover os registros da tabela
gabaritos onde id_pergunta possuir o mesmo valor.

Agradeço ajuda
Beto Lima
2010-10-23 14:40:44 UTC
Permalink
Pessoal obrigado pela luz, e me deu até vergonha de postar isso.
foi um momento de perturbação...quando da aquele branco geral...
fiz da seguinte maneira: criei mais uma coluna dentro de gabaritos com o
nome id_perg.
então esta fez referencia a tabela perguntas. daí consegui.

CONSTRAINT fk_gabaritos_id_perg FOREIGN KEY (id_perg)
REFERENCES perguntas (id_perg) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE

Loading...