Estou tentando criar algumas tabelas utilizando os comandos:
CREATE TABLE cursos (
id_curso int auto_increment primary key,
nome varchar(255) not null,
duracao int
);
CREATE TABLE matriculas (
id_matricula int auto_increment primary key,
data_entrada datetime,
foreign key (id_curso) references curso (id_curso)
);
A criação da tabela cursos é feita sem problemas, mas a de matriculas dá o seguinte erro: Error Code: 1072. Key column 'id_curso' doesn't exist in table
Não entendo exatamente o porque do erro, até porque a coluna id_curso é criada sem problemas algum. Alguma luz?
Incorreto! a tabela possuí as 3 colunas normalmente, a única diferença é que, quando é criada a relação de FK, eu não consigo informar valores inexistentes para a coluna id_curso, pois isso obriga que exista um registro na tabela curso com o valor que está sendo referenciado!
Da mesma forma eu não consigo remover um registro da tabela cursos, cujo o mesmo esteja sendo referenciado na tabela matriculas!
Isso me garante a integridade e consistência da informação.
Caso contrário eu conseguiria criar informações inconsistentes.