Baixe o app para aproveitar ainda mais
Prévia do material em texto
Stored Procedures (Procedimentos Armazenados) Prof. Daniel de Oliveira danielcmo@ic.uff.br Projeto de Banco de Dados para Sistemas de Informação 2018/2 Stored Procedures no MySQL • Contém uma sequência de comandos SQL armazenados no banco de dados e que podem ser invocados pelos usuários • Sintaxe: Create Procedure <proc-name> (param_spec1, param_spec2, …, param_specn ) begin -- execution code end; Onde cada param_spec possui a seguinte forma: [in | out | inout] <param_name> <param_type> • in : valores passados para a procedure como entrada, • out : permite que dados sejam passados da procedure para o programa que a invocou Exemplo Precisamos de uma procedure para atualizar os dados do salário Exemplo Passo 1: Mudar o delimiter (i.e., character de terminação) do SQL statement de ponto e vírgula (;) para qualquer outra coisa (e.g., //) Usamos ponto e vírgula nos scripts!!! Exemplo Passo 2: 1. Defina a procedure updateSalary que recebe como parâmetro um ID de departamento. 2. O corpo da procedure atualiza o totalsalary da tabela deptsal. 3. Termine a procedure usando o delimitador definido no passo 1 (//) Exemplo Passo 3: Mude o delimiter de novo para ponto e vírgula (;) Como invocar? Passo 4: Invocar a procedure com o commando call Exemplo Passo 5: Verificar o salário atualizado na tabela deptsal Stored Procedures no MySQL • show procedure status • Use drop procedure to remove a stored procedure Stored Procedures no MySQL • Podemos declarar variáveis em stored procedures • Podemos usar estruturas de controle de fluxo (IF- THEN-ELSE ou loops WHILE e REPEAT) • MySQL também oferece suporte a cursores. • Iteração sobre um conjunto de tuplas retornadas por uma consulta. • Referência: http://www.mysqltutorial.org/mysql-stored-procedure- tutorial.aspx Exemplo com Cursores • No exemplo anterior a gente atualizou um registro na tabela deptsal • E se quisesse atualizar todos? Dropar a procedure antiga Uso dos cursores Outro Exemplo • Criar uma procedure para aumentar o salário de todos os funcionários Outro Exemplo Outro Exemplo
Compartilhar