Usuário com melhor resposta
Comando Delete não funciona

Pergunta
-
Boa Noite
Não sei se posso postar esse tipo de tópico aqui, se não for o local correto me desculpem
_
Tenho 4 tabelas no Mysql Paciente, Exame, SerieExame e Resultados
Paciente esta ligado ao exame que por sua vez posue resultados
So que os resultados sao divididos em seriesJoao -> Paciente
Exame A -> Exame
Exserie1 ->Serie Exame
1ok -> Resultado
2ok -> Resultado
3ok -> Resultado
Exame B -> Exame
Exserie 2 -Serie Exame
1nok -> ResultadoO Problema é se eu fizer um Delete paciente where nome='Joao' ele deleta o Paciente, o Exame, todos os resultados, mas não deleta a serie.
Será que alguem tem alguma ideia de onde estou errando
Vou postar a SQL que estou utilizando
-- -------------------------------------------------------- -- Servidor: 127.0.0.1 -- Versão do servidor: 5.6.25-log - MySQL Community Server (GPL) -- OS do Servidor: Win64 -- HeidiSQL Versão: 9.2.0.4947 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- Copiando estrutura do banco de dados para hospital DROP DATABASE IF EXISTS `hospital`; CREATE DATABASE IF NOT EXISTS `hospital` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `hospital`; -- Copiando estrutura para tabela hospital.exame DROP TABLE IF EXISTS `exame`; CREATE TABLE IF NOT EXISTS `exame` ( `id` int(11) NOT NULL AUTO_INCREMENT, `idpaciente` int(11) NOT NULL DEFAULT '0', `feito` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idpaciente` (`idpaciente`), CONSTRAINT `FK__paciente` FOREIGN KEY (`idpaciente`) REFERENCES `paciente` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- Copiando dados para a tabela hospital.exame: ~0 rows (aproximadamente) DELETE FROM `exame`; /*!40000 ALTER TABLE `exame` DISABLE KEYS */; INSERT INTO `exame` (`id`, `idpaciente`, `feito`) VALUES (1, 1, 'AAA'), (2, 2, 'BBB'); /*!40000 ALTER TABLE `exame` ENABLE KEYS */; -- Copiando estrutura para tabela hospital.exameserie DROP TABLE IF EXISTS `exameserie`; CREATE TABLE IF NOT EXISTS `exameserie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nomeserie` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- Copiando dados para a tabela hospital.exameserie: ~3 rows (aproximadamente) DELETE FROM `exameserie`; /*!40000 ALTER TABLE `exameserie` DISABLE KEYS */; INSERT INTO `exameserie` (`id`, `nomeserie`) VALUES (1, 'serie s1'), (2, 'series2'), (3, 'serie s1a'); /*!40000 ALTER TABLE `exameserie` ENABLE KEYS */; -- Copiando estrutura para tabela hospital.paciente DROP TABLE IF EXISTS `paciente`; CREATE TABLE IF NOT EXISTS `paciente` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- Copiando dados para a tabela hospital.paciente: ~2 rows (aproximadamente) DELETE FROM `paciente`; /*!40000 ALTER TABLE `paciente` DISABLE KEYS */; INSERT INTO `paciente` (`id`, `nome`) VALUES (1, 'junior'), (2, 'marcos'); /*!40000 ALTER TABLE `paciente` ENABLE KEYS */; -- Copiando estrutura para tabela hospital.resultado DROP TABLE IF EXISTS `resultado`; CREATE TABLE IF NOT EXISTS `resultado` ( `id` int(11) NOT NULL AUTO_INCREMENT, `idexame` int(11) NOT NULL DEFAULT '0', `idserie` int(11) NOT NULL DEFAULT '0', `result` text, PRIMARY KEY (`id`), KEY `FK_resultado_exame` (`idexame`), KEY `FK_resultado_exameserie` (`idserie`), CONSTRAINT `FK_resultado_exame` FOREIGN KEY (`idexame`) REFERENCES `exame` (`id`) ON DELETE CASCADE, CONSTRAINT `FK_resultado_exameserie` FOREIGN KEY (`idserie`) REFERENCES `exameserie` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- Copiando dados para a tabela hospital.resultado: ~0 rows (aproximadamente) DELETE FROM `resultado`; /*!40000 ALTER TABLE `resultado` DISABLE KEYS */; INSERT INTO `resultado` (`id`, `idexame`, `idserie`, `result`) VALUES (1, 1, 1, 'OK'), (2, 1, 3, 'OK'), (3, 1, 2, 'OK'); /*!40000 ALTER TABLE `resultado` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
- Editado jjunior.net segunda-feira, 6 de julho de 2015 00:41
Respostas
Todas as Respostas
-
Bom dia Júnior.
Muito obrigado por sua participação no Fórum.
Por gentileza, verifique se já estava familiarizado com estas informações:
Excelente terça-feira.
-
-