PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Restrição de Integridade #562316

14/09/2016

0

Não sei o que está ocorrendo ao certo, preciso de ajuda, abaixo o código;

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

André Moutinho

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar