MySQL error 1824 - Failed to open the referenced table "docente"

olá, sou bem iniciente em sql e tenho um trabalho para entregar, porém meu script está com esse erro: error 1824 - failed to open the referenced table “docente”

acredito que tenha mais erros no código além desse…

drop database victor_hugo_barbosa_da_silva;
create database victor_hugo_barbosa_da_silva;
use victor_hugo_barbosa_da_silva;

create table departamento(
dep_id int not null,
dep_nome varchar(45),
fk_docente_id int,
primary key (dep_id),
foreign key(fk_docente_id) references docente (docente_id)
);

create table docente(
doc_id int not null,
doc_nome varchar(45),
fk_dep_id int not null,
primary key (doc_id),
foreign key (fk_dep_id) references departamento (dep_id) 
);

create table curso(
cur_id int not null,
cur_nome varchar(45),
fk_dep_id int,
primary key (cur_id),
foreign key (fk_dep_id) references departamento (dep_id) 
);

create table discente (
disc_ra int not null,
disc_nome varchar(45),
fk_curso_id int,
primary key (disc_ra),
foreign key (fk_curso_id) references curso (curso_id), 
dis_email varchar(30)
);

create table atribuicao(
primary key (pk_fk_disciplina_cod),  
primary key (pk_fk_docente_id)
);

create table disciplina(
disc_cod int not null,
disc_nome varchar(45),
fk_curso_id int,
primary key (disc_cod),
foreign key (fk_curso_id) references curso (curso_id) 
);

create table matricula(
primary key (pk_fk_discente_ra),  
primary key (pk_fk_disciplina_cod)
);

Você tem uma referência circular entre estas duas tabelas, para criar a tabela “departamento” a tabela “docente” precisa existir, e para criar a tabela “docente” a tabela “departamento” precisa existir.

1 curtida

Desculpa a pergunta talvez idiota KK, mas essas tabelas já não existem? ou esta faltando algo nelas

Aparentemente pelo erro que você apontou, não existem!

Perceba que as tabelas fazem uma referência circular, você nunca vai conseguir executar os CREATE TABLE destas duas tabelas pois elas dependem uma da outra para existir, sacou?

1 curtida

Sim entendi, o problema aqui é que eu achei que ja tinha criado as tabelas KKK, mas tudo bem

Para ter certeza aí só você poderia dizer, pois é o único que está vendo o todo!

Eu me referi à este erro porquê se observar o erro, ele diz não conseguiu fazer referência à tabela “docente”, seguindo o script de cima para baixo a 1º referência para “docente” aparece na tabela “departamento”.

Entenda que você ter a estrutura de comandos SQL para criação de tabela não quer dizer que suas tabelas existam.

1 curtida

Não sei se ajuda, mas to tentando criar o script dessas tabelas ai da imagem.