Ir para conteúdo
Fórum Script Brasil

Daniel Rocha

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Daniel Rocha

Daniel Rocha's Achievements

0

Reputação

  1. sou novo em mysql, estou criando uma stored procedure. e tendo chamar ela na tringger só que da erro CREATE DEFINER=`root`@`localhost` PROCEDURE `cnh_testes`( in v_veiculo int, in v_data_reserva date,in v_hora_reserva time, in v_previsao_volta date,in v_previsao_hora time,in v_destino int,in v_obs varchar(255),in v_condutor_id int) BEGIN declare v_validacnh INT; select c.id_condutor into v_validacnh from condutor c inner join veiculo v on v.Id_cnh = c.id_cnh where c.vencimento_cnh <= current_date() and c.id_condutor = c.id_condutor; if v_validacnh = v_condutor_id then rollback; SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'CNH VENCIDA OU CNH NÃO PERMITIDA PARA ESSE VEICULO'; else insert INTO RESERVA (veiculo,data_reserva,hora_reserva,previsao_volta,previsao_hora,destino,obs,condutor_id ) values(v_veiculo,v_data_reserva,v_hora_reserva,v_previsao_volta,v_previsao_hora,v_destino,v_obs,v_condutor_id ); end if; END *********aqui chamo ela na trigger************ CREATE DEFINER=`root`@`localhost` TRIGGER `testecarros`.`teste_BEFORE_INSERT` BEFORE INSERT ON `reserva` FOR EACH ROW BEGIN call cnh_testes (new.veiculo,new.data_reserva,new.hora_reserva,new.previsao_volta,new.previsao_hora,new.destino,new.obs,new.condutor_id ); END ***************erro que me retorna quando faço a inserção********************************************** Not allowed to returna result set a tringger como resolvo isto? ******************************************************************* assim quero fazer essa validação no banco - (ai eu valido se a cnh esta vencida antes de inseri) (antes de fazer (inseri )quero validar algumas situações ) 1- se o condutor esta com a cnh vencida- que é a procedure acima 2- se o condutor pode dirigir o veiculo - se cnh do condutor e igual ou maior veiculo do 3- condutor não pode fazer reserva se o veiculo estiver reservado naquele horário ou entre hora de retorno tenho essa tabelas CREATE TABLE `cnh` ( `Id_cnh` int(11) NOT NULL AUTO_INCREMENT, `cnh_nome` char(2) DEFAULT NULL, PRIMARY KEY (`Id_cnh`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1; ************************ CREATE TABLE `cidade` ( `id_cidade` int(11) NOT NULL AUTO_INCREMENT, `Cidade` varchar(50) DEFAULT NULL, `uf` int(11) DEFAULT NULL, PRIMARY KEY (`id_cidade`), KEY `uf` (`uf`), CONSTRAINT `cidade_ibfk_1` FOREIGN KEY (`uf`) REFERENCES `uf` (`id_uf`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; ************************ CREATE TABLE `condutor` ( `id_condutor` int(11) NOT NULL AUTO_INCREMENT, `nome_condutor` varchar(80) DEFAULT NULL, `id_departamento` int(11) DEFAULT NULL, `vencimento_cnh` date DEFAULT NULL, `telefone` varchar(11) DEFAULT NULL, `emai` varchar(80) DEFAULT NULL, `id_cnh` int(11) DEFAULT NULL, PRIMARY KEY (`id_condutor`), KEY `id_departamento` (`id_departamento`), KEY `id_cnh` (`id_cnh`), CONSTRAINT `condutor_ibfk_1` FOREIGN KEY (`id_departamento`) REFERENCES `departamento` (`id_departamento`), CONSTRAINT `condutor_ibfk_2` FOREIGN KEY (`id_cnh`) REFERENCES `cnh` (`Id_cnh`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; ************************ CREATE TABLE `veiculo` ( `id_veiculo` int(11) NOT NULL AUTO_INCREMENT, `tipo_veiculo` int(11) DEFAULT NULL, `placa` char(7) DEFAULT NULL, `cor` varchar(20) DEFAULT NULL, `km_veiculo_inical` int(11) DEFAULT NULL, `id_cnh` int(11) DEFAULT NULL, PRIMARY KEY (`id_veiculo`), KEY `tipo_veiculo` (`tipo_veiculo`), KEY `id_cnh` (`id_cnh`), CONSTRAINT `veiculo_ibfk_1` FOREIGN KEY (`tipo_veiculo`) REFERENCES `tipoveiculo` (`id_tipoveiculo`), CONSTRAINT `veiculo_ibfk_2` FOREIGN KEY (`id_cnh`) REFERENCES `cnh` (`Id_cnh`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; ************************ CREATE TABLE `reserva` ( `id_reseva` int(11) NOT NULL AUTO_INCREMENT, `veiculo` int(11) DEFAULT NULL, `data_reserva` date DEFAULT NULL, `hora_reserva` time DEFAULT NULL, `previsao_volta` date DEFAULT NULL, `previsao_hora` time DEFAULT NULL, `destino` int(11) DEFAULT NULL, `cancela` char(1) DEFAULT NULL, `baixar_reserva` int(11) DEFAULT NULL, `obs` varchar(255) DEFAULT NULL, `condutor_id` int(11) DEFAULT NULL, PRIMARY KEY (`id_reseva`), KEY `veiculo` (`veiculo`), KEY `destino` (`destino`), KEY `baixar_reserva` (`baixar_reserva`), KEY `condutor_id` (`condutor_id`), CONSTRAINT `reserva_ibfk_1` FOREIGN KEY (`veiculo`) REFERENCES `veiculo` (`id_veiculo`), CONSTRAINT `reserva_ibfk_2` FOREIGN KEY (`destino`) REFERENCES `cidade` (`id_cidade`), CONSTRAINT `reserva_ibfk_3` FOREIGN KEY (`baixar_reserva`) REFERENCES `tipobaixa` (`id_tipo_baixa`), CONSTRAINT `reserva_ibfk_4` FOREIGN KEY (`condutor_id`) REFERENCES `condutor` (`id_condutor`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; ************************
×
×
  • Criar Novo...