[firebase-br] Foreign Key - Urgente !!!!

Hugo dos Santos Saraiva projcad2 em ig.com.br
Seg Fev 7 09:40:22 -03 2005


Caro Ricardo,

Tente assim:

CREATE TABLE RR_ESC_CURSOS (
  CUR_CODIGO INTEGER NOT NULL PRIMARY KEY,
  CUR_DESCRICAO VARCHAR(80) NOT NULL,
  CUR_PES_CODIGO INTEGER NOT NULL REFERENCES RR_PESSOAS (PES_CODIGO),
  CUR_SIG_CODIGO INTEGER NULL REFERENCES RR_ESC_SIGLAS (SIG_CODIGO),
  CUR_NIV_CODIGO INTEGER NULL REFERENCES RR_ESC_NIVEIS (NIV_CODIGO),
  CUR_DURACAO INTEGER NOT NULL,
  CUR_CUSTO NUMERIC (18,4) NOT NULL,
);

ou assim:

CREATE TABLE RR_ESC_CURSOS (
  CUR_CODIGO INTEGER NOT NULL,
  CUR_DESCRICAO VARCHAR(80) NOT NULL,
  CUR_PES_CODIGO INTEGER NOT NULL,
  CUR_SIG_CODIGO INTEGER NULL,
  CUR_NIV_CODIGO INTEGER NULL,
  CUR_DURACAO INTEGER NOT NULL,
  CUR_CUSTO NUMERIC (18,4) NOT NULL
);

ALTER TABLE RR_ESC_CURSOS ADD CONSTRAINT PK_CURSOS PRIMARY KEY (CUR_CODIGO);

ALTER TABLE RR_ESC_CURSOS ADD CONSTRAINT FK_CUR_PES_CODIGO FOREIGN KEY 
(CUR_PES_CODIGO) REFERENCES RR_PESSOAS (PES_CODIGO);

ALTER TABLE RR_ESC_CURSOS ADD CONSTRAINT FK_CUR_SIG_CODIGO FOREIGN KEY 
(CUR_SIG_CODIGO) REFERENCES RR_ESC_SIGLAS (SIG_CODIGO);

ALTER TABLE RR_ESC_CURSOS ADD CONSTRAINT FK_CUR_NIV_CODIGO FOREIGN KEY 
(CUR_NIV_CODIGO) REFERENCES RR_ESC_NIVEIS (NIV_CODIGO);

Espero ter ajudado.

Hugo dos Santos Saraiva.

----- Original Message ----- 
From: "Ricardo Rocha" <ricardo em vsiinformatica.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Sunday, February 06, 2005 6:17 PM
Subject: [firebase-br] Foreign Key - Urgente !!!!


Pessoal, há tempo postei este tópico sobre Foreign Key e não cheguei a
nenhuma solução ... estou enviando novamente para ver se alguém pode me
ajudar !!!
Tenho bastante urgência !

Grato

Ricardo Rocha
www.mundodemerlin.pro.br
--------------------------------

Abaixo está o código que uso .... ele não funciona, dá erro. Qual seria a
forma correta ???

CREATE TABLE RR_ESC_CURSOS (
  CUR_CODIGO INTEGER NOT NULL,
  CUR_DESCRICAO VARCHAR(80) NOT NULL,
  CUR_PES_CODIGO INTEGER NOT NULL,
  CUR_SIG_CODIGO INTEGER NULL,
  CUR_NIV_CODIGO INTEGER NULL,
  CUR_DURACAO INTEGER NOT NULL,
  CUR_CUSTO NUMERIC (18,4) NOT NULL,
  CONSTRAINT PK_CURSOS PRIMARY KEY (CUR_CODIGO),
  CONSTRAINT FK_CUR_PES_CODIGO FOREIGN KEY (CUR_PES_CODIGO) REFERENCES
RR_PESSOAS (PES_CODIGO),
  CONSTRAINT FK_CUR_SIG_CODIGO FOREIGN KEY (CUR_SIG_CODIGO) REFERENCES
RR_ESC_SIGLAS (SIG_CODIGO),
  CONSTRAINT FK_CUR_NIV_CODIGO FOREIGN KEY (CUR_NIV_CODIGO) REFERENCES
RR_ESC_NIVEIS (NIV_CODIGO),
);

Usando este script deu erro. Qual seria a forma correta ??
Neste caso os campos que estão NULL podem ser nulos dependendo de uma flag
no sistema.

[]'s

Ricardo Rocha
www.mundodemerlin.pro.br





> Boa tarde,
>
> crie a foreign key normalmente, apenas na tabela A defina o campo cidade
> como sendo NULL.
>
> uma foreign key nao tem que ser obrigatorimante definido como NOT NULL.
>
> isso fará com que a tabela A aceite valores NULL e apenas os códigos
> cadastrados na tabela cidade.
>
> Espero que ajude,
>
> Fabiano.
>
>>From: ricardo em vsiinformatica.com.br
>>Reply-To: FireBase <lista em firebase.com.br>
>>To: "FireBase" <lista em firebase.com.br>
>>Subject: [firebase-br] Foreign Key
>>Date: Wed, 26 Jan 2005 11:38:59 -0200 (BRDT)
>>
>>       Pessoal, o que quero poderia fazer via regra de negocio, mas
>>gostaria de saber se tem como fazer no banco.
>>
>>       A situação é a seguinte.
>>       Tenho uma tabela A (Pessoas) e uma tabela B (Cidades) ... o campo
>>cidades na tabela A não é obrigatório, portanto, pode ter valores
>>null. Mas gostaria de colocar uma Foreign key da tabela B na tabela
>>A ... como posso fazer isso ???
>>
>>[]'s
>>
>>Ricardo Rocha
>>www.mundodemerlin.pro.br
>>
>>
>>______________________________________________
>>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>Para editar sua configuração na lista, use o endereço
>>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
> _________________________________________________________________
> MSN Messenger: converse online com seus amigos .
> http://messenger.msn.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br





Mais detalhes sobre a lista de discussão lista