[Resolvido]Banco de dados Oracle SqlDeveloper

6 respostas
oraclebancopostgresqlprogramaçãosql
felipe1234

Pessoal boa tarde criei uma tabela Aluno e , criei uma chave primaria com nome Nr_rgm mas ao referencia-la apresenta o seguinte erro.

Erro de sintaxe.Regras Reconhecidas parcialmente(diagramas de ferrovia)

CREATE TABLE Aluno (
Nr_Rgm Number (8),
Nm_Nome Varchar2(40),
Nm_Pai Varchar2(40),
Nm_Mae VARCHAR2(40),
dt_Nascimento Date,
Id_Sexo char(1) CHECK (Id_Sexo in ('M', 'F')),
constraint PK_Aluno PRIMARY KEY(Nr_Rgm), 
REFERENCES Matricula(Nr_Rgm) 
//Erro apresentado nessa linha.Erro de sintaxe.Regras   Reconhecidas parcialmente(diagramas de ferrovia)
);

6 Respostas

Jonathan_Medeiros

Não se faz referência em PK, referência se faz em FK!

CREATE TABLE Aluno (
  Nr_Rgm Number (8),
  Nm_Nome Varchar2(40),
  Nm_Pai Varchar2(40),
  Nm_Mae VARCHAR2(40), 
  dt_Nascimento Date,
  Id_Sexo char(1) CHECK (Id_Sexo in ('M', 'F')),
  constraint PK_Aluno PRIMARY KEY(Nr_Rgm), 
  constraint FK_Aluno FOREIGN KEY(Nr_Rgm) REFERENCES Matricula(Nr_Rgm)
);
felipe1234

mas no exercicio que estou fazendo não pede FK na tabela Aluno

Jonathan_Medeiros

Independente se está ou não pedindo no exercício, referência de chaves entre tabelas sempre se faz da FK da tabela destino para a PK da tabela origem!

Dê uma boa lida a respeito de constraints (PK e FK), seu conceito está meio vago sobre o assunto, isso vai te ajudar.

felipe1234

Blz mais uma vez obrigado Jonathan

Jederson_Andre

O mesma coluna pode ser Primary Key e Foreign Key???

Jonathan_Medeiros

Sim, podem!

Criado 1 de março de 2017
Ultima resposta 1 de mar. de 2017
Respostas 6
Participantes 3