Error Code: 1215. Can not add foreign key constraint

1

Can anyone help me? I can not create this foreign key.

Here is my code:

CREATE DATABASE escola2;
   USE escola2;

   CREATE TABLE IF NOT EXISTS aluno (
    matricula INT,
    nome VARCHAR(25),
    sobrenome VARCHAR(30),
    cod_curso VARCHAR(20),
    periodo INT
) ENGINE=InnoDB AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS professor (
    codigo INT,
    nome VARCHAR(25),
    sobrenome VARCHAR(30),
    curso_ministrado VARCHAR(30),
    setor VARCHAR(30),
    salario DECIMAL(8,2)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;

CREATE TABLE estado_civil(
    id_estado INT NOT NULL auto_increment PRIMARY KEY,
    estado VARCHAR(20) NOT NULL,
    id_funcionario INT NOT NULL,
    foreign key(id_estado) references aluno(matricula)
);
    
asked by anonymous 17.11.2016 / 13:11

1 answer

4

Try to do this:

CREATE DATABASE escola2;
USE escola2;

CREATE TABLE IF NOT EXISTS aluno (
    matricula INT NOT NULL auto_increment PRIMARY KEY,
    nome VARCHAR(25),
    sobrenome VARCHAR(30),
    cod_curso VARCHAR(20),
    periodo INT
) ENGINE=InnoDB AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS professor (
    codigo INT NOT NULL auto_increment PRIMARY KEY,
    nome VARCHAR(25),
    sobrenome VARCHAR(30),
    curso_ministrado VARCHAR(30),
    setor VARCHAR(30),
    salario DECIMAL(8,2)
) ENGINE=InnoDB AUTO_INCREMENT=1;

CREATE TABLE estado_civil (
    id_estado INT NOT NULL auto_increment PRIMARY KEY,
    estado VARCHAR(20) NOT NULL,
    id_funcionario INT NOT NULL,
    foreign key(id_estado) references aluno(matricula)
) ENGINE=InnoDB AUTO_INCREMENT=1;

The problem seems to me that it was because you had not set the primary keys of aluno and professor .

    
17.11.2016 / 13:46