MySQL Error 1215: cannot add foreign key constraint

06/11/2017

0

Senhores, estou com um problema na criação de uma tabela no mysql, tentei diversas coisas e infelizmente não consegui resolver. Será que poderiam dar uma olhadinha nesse código?

Quando o código chega na execução da ultima tabela ele da o erro "Error 1215: cannot add foreign key constraint "
CREATE TABLE Professor(
	ra INT  UNSIGNED NOT NULL 
    ,apelido VARCHAR(30) NOT NULL
    ,nome VARCHAR(120) NOT NULL
    ,email VARCHAR(80) NOT NULL
    ,celular CHAR(11) NOT NULL
    ,CONSTRAINT pkra PRIMARY KEY (ra)
    ,CONSTRAINT uqapelido UNIQUE (apelido) 
    )ENGINE=InnODB;

CREATE TABLE Curso(
	sigla VARCHAR(5) NOT NULL 
    ,nome VARCHAR(50) NOT NULL
    ,CONSTRAINT pksigla PRIMARY KEY (sigla)
    ,CONSTRAINT uqnome UNIQUE (nome)
    )ENGINE=InnODB;
    
CREATE TABLE GradeCurricular(
	sigla_curso VARCHAR(5) NOT NULL
    ,ano SMALLINT UNSIGNED NOT NULL
    ,semestre CHAR(1) NOT NULL
    ,CONSTRAINT fksigla_curso FOREIGN KEY (sigla_curso) REFERENCES Curso (sigla) 
    ,PRIMARY KEY (sigla_curso,ano,semestre)
)ENGINE=InnODB;
	
CREATE TABLE Periodo(
	sigla_curso VARCHAR(5) NOT NULL
    ,ano_grade SMALLINT UNSIGNED NOT NULL
    ,semestre_grade CHAR (1) NOT NULL
    ,numero TINYINT UNSIGNED NOT NULL
    ,CONSTRAINT fk_sigla_curso FOREIGN KEY (sigla_curso) REFERENCES GradeCurricular (sigla_curso)
    ,CONSTRAINT fk_ano_grade FOREIGN KEY (ano_grade) REFERENCES GradeCurricular (ano)
    ,CONSTRAINT fk_semestre_grade FOREIGN KEY (semestre_grade) REFERENCES GradeCurricular (semestre)
    ,PRIMARY KEY (sigla_curso,ano_grade,semestre_grade,numero)
)ENGINE=InnODB;
Jhonatan Teodoro

Jhonatan Teodoro

Responder

Posts

06/11/2017

Jhonatan Teodoro

Resolvido õ/
Responder

15/12/2017

Juliano

O que era o erro?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar