PL/PgSQL
PL/pgSQL (Procedural Language/PostgreSQL Structured Query Language) é uma linguagem imperativa fornecida pelo gerenciador de banco de dados PostgreSQL . Permite executar comandos SQL através de uma linguagem de comandos imperativos e o uso de funções, dando um controle muito mais automático do que comandos SQL básicos.
A partir do PL/pgSQL você pode realizar cálculos complexos e criar novos tipos de dados do usuário. Como uma verdadeira linguagem de programação , possui estruturas de controle repetitivas e condicionais, além da possibilidade de criar funções que podem ser chamadas em instruções SQL normais ou executadas em eventos de gatilho .
Uma das principais vantagens de executar a programação no servidor de banco de dados é que as consultas e o resultado não precisam ser transportados entre o cliente e o servidor , pois os dados residem no próprio servidor. Além disso, o gerenciador de banco de dados pode planejar otimizações na execução da busca e atualização de dados.
Funções escritas em PL/pgSQL aceitam argumentos e podem retornar valores do tipo básico ou do tipo complexo (por exemplo, registros, vetores, conjuntos ou mesmo tabelas), permitindo tipagem polimórfica para funções abstratas ou genéricas (referência a variáveis do tipo object ) .
Exemplo de código PL/pgSQL
CREATE OR REPLACE FUNCTION call_not_interested(integer) RETURNS integer AS ' DECLARAR _call_id ALIAS POR $1; _contact_id inteiro; COMEÇAR -- encontre o contato relacionado SELECT _contact_id INTO _contact_id FROM chamadas WHERE id = _call_id; -- atualizar chamadas atendidas UPDATE chamadas SET atendidas = true WHERE id = _call_id; -- atualiza not_interested nos contatos ATUALIZAR contatos SET not_interested = true WHERE id = _contact_id; RETURN _contact_id; FIM; '
Links externos
- PL/pgSQL no manual do PostgreSQL