Restrição de Integridade
Não sei o que está ocorrendo ao certo, preciso de ajuda, abaixo o código;
Estou mexendo com restrição de integridade CASCATA, havia olhado um artigo aqui do DEVMEDIA sobre, e resolvi criar um a nível de conhecimento, porém para minha surpresa desagradável, ao tentar rodar a linha de exclusão "DELETE" , ele me apresenta um erro;
DELETE FROM aluno WHERE nome = 5 Error Code: 1292. Truncated incorrect DOUBLE value: 'André Moutinho
O que eu quero que ocorra é, ao tentar deletar um registro na TABELA ALUNO, o restrito de NOTAS desse aluno será excluído automaticamente, exercendo assim a função cascata, mas está dando esse erro ai que estou me referindo em cima e não sai disso.
Já olhei em todos os cantos, e não sei mais o que pensar e nem como resolver, caso alguém saiba. Me auxilie.
Estou usando o Workbench 6.0
create database exemplo_cascata;
use exemplo_cascata;
CREATE TABLE aluno (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome CHAR(30) NOT NULL
) ENGINE=InnoDB;
CREATE TABLE cursos (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome CHAR(30) NOT NULL
) ENGINE=InnoDB;
CREATE TABLE notas (
aluno_id INT NOT NULL,
cursos_id INT NOT NULL,
date DATE NOT NULL,
nota DOUBLE NOT NULL,
PRIMARY KEY(aluno_id, cursos_id, date),
INDEX i2 (cursos_id),
FOREIGN KEY (aluno_id) REFERENCES aluno(id) ON DELETE CASCADE,
FOREIGN KEY (cursos_id) REFERENCES cursos(id) ON DELETE RESTRICT
)ENGINE=InnoDB;
# CONSULTA DAS TABELAS #
SELECT * FROM notas;
SELECT * FROM aluno;
SELECT * FROM cursos;
# INSERÇÕES ALUNO #
INSERT INTO aluno (id, nome) VALUES (1, 'Andre');
INSERT INTO aluno (id, nome) VALUES (2, 'Paulo');
INSERT INTO aluno (id, nome) VALUES (3, 'Ronaldo');
INSERT INTO aluno (id, nome) VALUES (4, 'Maria');
INSERT INTO aluno (id, nome) VALUES (5, 'Augusto ');
# INSERÇÕES CURSOS #
INSERT INTO cursos (id, nome) VALUES (1, 'Analise de Sistemas');
INSERT INTO cursos (id, nome) VALUES (2, 'Sistemas para Internet');
INSERT INTO cursos (id, nome) VALUES (3, 'Ciencias da Computação');
INSERT INTO cursos (id, nome) VALUES (4, 'Engenharia de Software');
INSERT INTO cursos (id, nome) VALUES (5, 'Jogos Digitais');
# INSERÇÕES NOTAS #
INSERT INTO notas (aluno_id,cursos_id,Date,nota) VALUES (1, 1, '2009-02-02',9.5);
INSERT INTO notas (aluno_id,cursos_id,Date,nota) VALUES (2, 3, '2010-04-12',7.5);
INSERT INTO notas (aluno_id,cursos_id,Date,nota) VALUES (4, 5, '2012-10-22',10.0);
INSERT INTO notas (aluno_id,cursos_id,Date,nota) VALUES (3, 4, '2014-11-05',6.5);
INSERT INTO notas (aluno_id,cursos_id,Date,nota) VALUES (5, 2, '2015-12-10',8.3);
# AÇÕES #
DELETE FROM aluno WHERE nome = 5;
Estou mexendo com restrição de integridade CASCATA, havia olhado um artigo aqui do DEVMEDIA sobre, e resolvi criar um a nível de conhecimento, porém para minha surpresa desagradável, ao tentar rodar a linha de exclusão "DELETE" , ele me apresenta um erro;
DELETE FROM aluno WHERE nome = 5 Error Code: 1292. Truncated incorrect DOUBLE value: 'André Moutinho
O que eu quero que ocorra é, ao tentar deletar um registro na TABELA ALUNO, o restrito de NOTAS desse aluno será excluído automaticamente, exercendo assim a função cascata, mas está dando esse erro ai que estou me referindo em cima e não sai disso.
Já olhei em todos os cantos, e não sei mais o que pensar e nem como resolver, caso alguém saiba. Me auxilie.
Estou usando o Workbench 6.0
André Moutinho
Curtidas 0