Como criar procedimentos armazenados no PostgreSQL

Como Criar Procedimentos Armazenados No Postgresql



Com o PostgreSQL é possível criar procedimentos armazenados que definem diversas rotinas que devem ser executadas quando chamadas. Essas rotinas são compostas por instruções SQL que executam as tarefas definidas em seu banco de dados. Por exemplo, você pode criar um procedimento armazenado que atualize os valores da sua tabela quando você a chamar.

Os procedimentos armazenados ajudam na otimização do banco de dados e no aprimoramento da capacidade de reutilização. Em vez de executar a mesma consulta, você pode criar a tarefa como um procedimento armazenado que será chamado sempre que necessário. Você aprenderá tudo sobre procedimentos armazenados ao final deste post.

Trabalhando com procedimentos armazenados no PostgreSQL

Como usuário do PostgreSQL, você deve ter notado que as funções do PostgreSQL não executam transações. Embora seja possível criar uma transação, não é possível confirmá-la ou revertê-la para o estado anterior. No entanto, essas limitações são contornadas por meio de procedimentos armazenados.







Aqui está a sintaxe básica para criar um procedimento armazenado no PostgreSQL:



CRIAR OU SUBSTITUIR PROCEDIMENTO nome_procedimento(

parâmetro[s] tipo_dados

)

IDIOMA plpsql;

COMO $$

DECLARAR

variáveis_se_qualquer tipo de dados

COMEÇAR

lógica

FIM;

$$

Os principais itens a serem observados na sintaxe fornecida são “nome_do procedimento”, que é o nome que você usará para o procedimento armazenado, os parâmetros que deseja incluir e seus tipos de dados, e a lógica que são principalmente as instruções SQL.



Vamos dar três exemplos para ajudá-lo a entender como criar procedimentos armazenados no PostgreSQL.





Exemplo 1: Um procedimento armazenado para calcular o quadrado de um número

Para nosso primeiro exemplo, criamos um procedimento armazenado que usa a instrução “RAISE NOTICE” como forma de imprimir a saída no terminal. O procedimento armazenado pega o valor inteiro que você fornece ao chamá-lo e calcula seu quadrado.

Veja como criamos o procedimento armazenado:



Nomeamos nosso parâmetro como “num1” e é um número inteiro. Para a parte lógica, definimos como ele obtém o quadrado de “num1” e o armazena como a variável quadrada. Ao executar o comando, obtemos a saída “CREATE PROCEDURE” que confirma que conseguimos criar o procedimento armazenado com sucesso.

A próxima tarefa é chamar o procedimento e fornecer o argumento esperado.

CALL nome_procedimento(argumentos);

Você obterá a saída CALL mostrando que o procedimento armazenado foi executado e estamos obtendo a saída esperada que, neste caso, é o quadrado do argumento que adicionamos.

Exemplo 2: Um procedimento armazenado para inserir os valores em uma entrada de tabela

Os dois exemplos a seguir mostram como criar um procedimento armazenado que funciona com uma tabela de banco de dados. Vamos criar rapidamente a tabela “alunos” com a qual trabalharemos.

Para este exemplo, criamos um procedimento armazenado que permite ao usuário inserir os valores na tabela recém-criada. Observe como especificamos os parâmetros que esperamos que sejam adicionados como argumentos quando chamamos o procedimento armazenado. Além disso, definimos a lógica que pega os argumentos adicionados e executa uma instrução INSERT SQL na tabela “alunos”.

Podemos verificar os procedimentos armazenados disponíveis executando o seguinte comando:

\df

O primeiro procedimento armazenado que podemos ver na saída a seguir é o “add_student” que criamos anteriormente.

Agora, vamos chamar o procedimento armazenado para executá-lo. A imagem a seguir mostra como temos uma tabela vazia, mas chamamos o procedimento armazenado para adicionar o primeiro aluno:

Se listarmos os valores em nossa tabela, observe como os argumentos que adicionamos com o comando call procedure são os valores de nosso primeiro aluno em nossa tabela. É assim que você cria um procedimento armazenado para inserir os valores em uma tabela.

Observe que ao criar o procedimento armazenado, os parâmetros especificados devem corresponder ao esperado em sua tabela para evitar erros. Além disso, o tipo de dados deve corresponder.

Exemplo 3: Um procedimento armazenado para atualizar uma entrada de tabela

Continuando, vamos criar outro procedimento armazenado que atualiza uma entrada de tabela. Se você quiser uma maneira rápida de atualizar os valores em nossa tabela, você pode criar um procedimento armazenado de atualização da seguinte maneira:

Especifique qual coluna você deseja atualizar usando a palavra-chave WHERE e o novo valor usando a palavra-chave SET. Você deve então adicionar a palavra-chave COMMIT para persistir as alterações.

Vamos chamar o procedimento armazenado de atualização e adicionar os argumentos esperados: “student_id” e o novo curso.

Se listarmos as entradas em nossa tabela, poderemos verificar se temos o curso atualizado para o aluno específico que visamos. É assim que funciona um procedimento armazenado de atualização.

Conclusão

Você pode criar qualquer procedimento armazenado no PostgreSQL. Você só precisa entender a sintaxe a seguir e então definir sua lógica para o procedimento armazenado. A partir daí, chame o procedimento armazenado e verifique se ele foi executado conforme o esperado. Esta postagem explicou sobre os procedimentos armazenados no PostgreSQL e forneceu exemplos de como criá-los.