Ir para conteúdo
Fórum Script Brasil
  • 0

Constraint


Monica 19

Pergunta

Boa tarde

Sou nova em Sql e preciso criar o relacionamento entre 02 tabelas utilizando a constraint foreing key,porém o sistema retorna com a mensagem:Não é possivel ler a  propriedade substring  de undefined,como resolvo isso?

Segue o comando que estou inserindo:

ALTER TABLE: Classe, 
 ADD CONSTRAINT 'fk_Classe_Cd_Classe',
 FOREIGN KEY ('cd_Classe') REFERENCES PK 'Aluno' (`Nr_Rgm`),
  

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

qual é o BD?
caso for mysql ou Postgres o comando está errado mesmo; o correto seria:

alter table TABELA add foreign key(coluna_que_sera_chave_estrangeira)
references TABELA_COM_A_CHAVE_PRIMARIA(chave primaria)

sem dois pontos sem aspas simples etc.
ah, as duas colunas tem que ser mesmo tipo - verifica ahe..

Editado por Marcelo_2
Link para o comentário
Compartilhar em outros sites

  • 0

tenho 03 tabelas no mysql:Aluno,classe e matricula.Na tabela matricula tem o item: Dt_Matricula date, que não está mencionado na tabela aluno nem na tabela classe,sendo assim defini a mesma como primary key.

O meu código ficou assim:

  Create Table Matricula(
Nr_Rgm number(8) ,*pertence a tabela aluno*
Cd_Classe number(8) ,  *pertence a tabela Classe*
 Dt_Matricula date, 
  CONSTRAINT fk_Rgm
    FOREIGN KEY (Nr_Rgm)
    REFERENCES Aluno(Nr_Rgm)
   CONSTRAINT fk_classe
    FOREIGN KEY (Cd_Classe)
    REFERENCES Classe(Cd_Classe)
  CONSTRAINT MATRICULA_pk PRIMARY KEY(Dt_Matricula)
)

tentei concluir a tabela desta forma: 

select m.Aluno, m.classe, m.matricula
from tabela matricula
inner join tabela Aluno on m.Rgm = Aluno.Nr_Rgm
inner join tabela Classe on m.Classe =Classe.Cd_Classe;

e o sistema apresentou a msg:

 Não é possível ler propriedade 'substring' de undefined

 

Link para o comentário
Compartilhar em outros sites

  • 0

oi.. faltaram as virgulas no final dessas linhas:
REFERENCES Aluno(Nr_Rgm),
e
REFERENCES Classe(Cd_Classe),

so q não t recomendo usar uma data como chave primaria, a menos que vc tenha certeza de que ela nunca irá se repetir.

ah, em sql:

select m.Aluno, m.classe, m.matricula
from tabela matricula
inner join tabela Aluno on m.Rgm = Aluno.Nr_Rgm
inner join tabela Classe on m.Classe =Classe.Cd_Classe;

tire essas palavras "tabela".. fui..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...