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

Procedure MySql


wdmatheus

Pergunta

Olá para todos. Comecei a estudar MySql a pouco tempo e estou apanhando um pouco da sintaxe. Gostaria de criar uma procedure que recebe como parâmetro uma variável inteira, uma string e um caracter. O caracter para controle de transação, por exemplo, se ele for 'I' será efetuado uma no inserção, se 'U' será feito update e se 'D' será realizada uma excusão. A variável inteira será usada para controle de registro que pode ser modificado ou excluido e a string o dado que será inserido ou modificado. Como condição para as operações de insert e update desejo validar o tamanho da string passado como parâmetro e caso não passe pela validação, devolva uma mensagem de erro personalizada. Com o Ms Sql é muito fácil fazer isso, segue abaixo a procedure para Ms Sql Server com a opção para inserção:

create procedure sp_area(@id int, @descricao varchar(50), @opcão char(1))
as
begin
    if @opcão = 'I'
    begin
        if LEN(@descricao) = 0
        begin
            raiserror('Informe a descrição da área corretamente!', 16, 1)
            return
        end
        else
            insert into areas(descricao) values(@descricao)
    end            
end
Abaixo o que fiz até agora para MySql
DELIMITER $$

DROP PROCEDURE IF EXISTS `qualytirh`.`sp_area` $$
CREATE PROCEDURE `qualytirh`.`sp_area`
(in id integer, descricao varchar(50), opcao char(1))

BEGIN
declare exit handler for sqlwarning

  if opcao = 'I' then

    if length(descricao) = 0 then
      select 'Informe a descrição da área corretamnete!' as Msg;

    else
      insert into areas(desc_area)
      values(descricao);
    end if;

  end if;

END $$

DELIMITER;
E abaixo a estrutura da tabela:
create table areas(

  id_area int primary key auto_increment,
  desc_area varchar(50)
);

Agradeço qualquer ajuda.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,2k
    • Posts
      652k
×
×
  • Criar Novo...