Ir para conteúdo
Fórum Script Brasil
  • 0

Precedure do SQL para MYSQL


MauMaster

Pergunta

Olá pessoal, estou em um semestre onde apresento um trabalho em banco de dados, sei que a procedure que estou cirando ficaria melhor na aplicação, porém preciso apresentar somente o banco de dados, um amigo me ajudou mas ele fez a logica em sql, tentei converter para MYSQl porém está dando erro, mostrarei a procecure e o erro, se precisarem posso postar também as tabelas, agradece qualquer ajuda estou desesperado.

Alias a ideia da procedure é analisar se a viatura e o motorista e o horário estão disponíveis para cadastrar uma nova viagem, se não estiverem, volta um ERRO se estiverem liberado fazemos o INSERTna tabela.

CREATE  PROCEDURE ADICIONAR_VIAGEM99(
		  IN pIDVIAGENS INT ,
		  IN pCIDADE VARCHAR(25) ,
		  IN pDATAHORAINICIO DATETIME ,
		  IN pDATAHORAFINAL DATETIME ,
		  IN pCOR VARCHAR(15) ,
		  IN pCEP CHAR(9) ,
		  IN pRUA VARCHAR(30),
		  IN pNUMERO VARCHAR(8) ,
		  IN pBAIRRO VARCHAR(25) ,
		  IN pESTADO CHAR(2) ,
		  IN pDESCRICAO VARCHAR(200),
		  IN pID_DADOSPESSOAS INT,
		  IN pID_MOTORISTA INT,
		  IN pID_VIATURA INT
		)
	BEGIN
		
		DECLARE DisponibilidadeViatura   INT;
		DECLARE DisponibilidadeMotorista INT;

		if exists (Select * from VIAGENS where ID_VIATURA = pID_VIATURA AND  pDATAHORAINICIO between DATAHORAINICIO and DATAHORAFINAL )
		set DisponibilidadeViatura = 0
		else
		set DisponibilidadeViatura = 1

		if exists (Select * from VIAGENS where ID_MOTORISTA = pID_MOTORISTA AND  pDATAHORAINICIO between DATAHORAINICIO and DATAHORAFINAL )
		set DisponibilidadeMotorista = 0
		else
		set DisponibilidadeMotorista = 1

		if (DisponibilidadeViatura = 1 and DisponibilidadeMotorista = 1)
		
			INSERT INTO VIAGENS (IDVIAGENS, CIDADE, DATAHORAINICIO, DATAHORAFINAL, COR, CEP, RUA, NUMERO, BAIRRO, ESTADO, DESCRICAO, ID_DADOSPESSOAS, ID_MOTORISTA, ID_VIATURA)
	                     VALUES (NULL,pCIDADE, pDATAHORAINICIO, pDATAHORAFINAL, pCOR, pCEP, pRUA, pNUMERO, pBAIRRO, pESTADO, pDESCRICAO, pID_DADOSPESSOAS, pID_MOTORISTA, pID_VIATURA);

		else
		Select 'Motorista ou Viatura indisponível na data/hora selecionada.' as 'Error';

	END
		$

E o erro que está aparecendo é o seguinte

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set DisponibilidadeViatura = 0
else
set DisponibilidadeViatura = 1

if exists (S' at line 23

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...