Estou criando 2 tabelas e relacionando-as usando o Foreign key mas esta acontecendo uma coisa que não entendo (a relação aqui é de n para 1) código abaixo:
-- criação da tabela alunos
create table alunos (
idaluno int auto_increment,
nome varchar(30),
idade int,
data_nasc date,
primary key (idaluno)
) default charset = utf8;
-- criação da tabela aulas
create table aulas (
numaula int auto_increment,
nome varchar(20),
duracao int,
primary key (numaula)
) default charset = utf8;
-- cadastro dos alunos
insert into alunos values
(idaluno, 'Miguel', '18', '2001-04-14'),
(idaluno, 'Isadora', '18', '2001-05-02'),
(idaluno, 'Gabriela', '20', '1999-04-13'),
(idaluno, 'Ayslan', '18', '2001-11-18'),
(idaluno, 'Ryan', '18', '2001-09-23'),
(idaluno, 'Igor', '18', '2001-04-29');
-- cadastro das aulas
insert into aulas values
(numaula, 'Fisica', '50'),
(numaula, 'Matemática', '120'),
(numaula, 'Geográfia', '20'),
(numaula, 'Quimica', '40'),
(numaula, 'Sociologia', '10'),
(numaula, 'E.D Fisica', '40'),
(numaula, 'História', '60'),
(numaula, 'Português', '60');
-- ------------------------------------------------------------------------------------------
-- inserir chave estrangeira
alter table alunos
modify alid int after idaluno;
alter table alunos
add foreign key (alid)
references aulas(numaula);
-- integrar as tabelas com a chave estrangeira
update alunos set alid = '2' where idaluno = '1';
delete from aulas where numaula = '2';
-> O que não entendo é que quando dou esse delete, ele deleta o registro, porém pelo que vi não era pra isso acontecer quando uso a chave estrangeira. Pelo que vi era pra isso dar um erro pois ja a uma ligação entre esse registro e o registro da tabela alunos. Bom estou usando o WorkBench e não sei por que ele está excluindo o registro, quando na verdade era pra dar um erro. Se alguém souber por favor me diga, obrigado.