Exemplos de Stored Procedure MySql

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 14/09/2016


Stored Procedure MySql

Para gerenciar os seu Banco de Dados MySql você pode utilizar o MySQL Workbench você encontra o link para baixar o MySQL Workbench e também o MySql no final desta postagem.

Consulta sem passagem de parâmetro

-- ============================================================
-- Author     : Antonio Azevedo
-- Create date: 14/09/2016
-- Description: Select alunos classificados por nome
-- ============================================================

USE `escola`;
DROP procedure IF EXISTS `pcdAluno_Slc`;

DELIMITER $$
USE `escola`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcdAluno_Slc`()
BEGIN

select a.idaluno, a.nome, a.email, a.dtcadastro, a.valor, 
           c.idcurso, c.descricao as descricao_curso 
    from alunos as a 
    inner join cursos as c on c.idcurso = a.idcurso 
    order by a.nome;
         
END;$$

DELIMITER ;

Consulta com passagem de parâmetro

-- ============================================================
-- Author     : Antonio Azevedo
-- Create date: 14/09/2016
-- Description: Select alunos por ID
-- ============================================================

USE `escola`;
DROP procedure IF EXISTS `pcdAluno_SlcID`;

DELIMITER $$
USE `escola`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcdAluno_SlcID`(in idaluno INT)
BEGIN

select a.idaluno, a.nome, a.email, a.dtcadastro, a.valor, 
           c.idcurso, c.descricao as descricao_curso 
    from alunos as a 
    inner join cursos as c on c.idcurso = a.idcurso 
    where a.idaluno = idaluno
    order by a.nome;
    
         
END;$$

DELIMITER ;

Insert com retorno do Id Criado

O comando LAST_INSERT_ID() executado antes de finalizar a conexão retorna o numero do ultimo id criado.

-- ============================================================
-- Author     : Antonio Azevedo
-- Create date: 14/09/2016
-- Description: Incluir Alunos e retornar o ID no novo registro
-- ============================================================

USE `escola`;
DROP procedure IF EXISTS `pcdAluno_Ins`;

DELIMITER $$
USE `escola`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcdAluno_Ins`(
IN
idcurso             INT,
nome                VARCHAR(100),
email               VARCHAR(100), 
dtcadastro          DATETIME, 
valor               DECIMAL(15,2) 
)
BEGIN

INSERT INTO alunos (idcurso, nome, email, dtcadastro, valor)
                VALUES   (idcurso, nome, email,  dtcadastro, valor);
   
SELECT LAST_INSERT_ID() as retorno;
         
END;$$

DELIMITER ;

Update com passagem de parâmetros

-- ===========================================
-- Author     : Antonio Azevedo
-- Create date: 14/09/2016
-- Description: Altera Alunos
-- ===========================================

USE `escola`;
DROP procedure IF EXISTS `pcdAluno_Upd`;

DELIMITER $$
USE `escola`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcdAluno_Upd`(
IN
idaluno             INT,
idcurso             INT,
nome                VARCHAR(100),
email               VARCHAR(100), 
dtcadastro          DATETIME, 
valor               DECIMAL(15,2) 
)
BEGIN

UPDATE alunos as a set a.idcurso = idcurso, a.nome = nome, a.email = email, a.dtcadastro = dtcadastro, a.valor = valor
           where a.idaluno = idaluno;
         
END;$$

DELIMITER ;

Delete com passagem de parâmetros

-- ===========================================
-- Author     : Antonio Azevedo
-- Create date: 14/09/2016
-- Description: Altera Alunos
-- ===========================================

USE `escola`;
DROP procedure IF EXISTS `pcdAluno_Del`;

DELIMITER $$
USE `escola`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `pcdAluno_Del`(IN idaluno INT)
BEGIN

DELETE FROM alunos WHERE alunos.idaluno = idaluno;  

         
END;$$

DELIMITER ;







Comentários