PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Executando o comando do sistema com argumento em uma função do PostgreSQL


Você pode acessar alguns valores em gatilhos plsh.
  • UPDATE oferece apenas ANTIGO
  • INSERT oferece apenas NOVO (duh)
  • DELETE Não testei

Então você obtém esses valores usando argumentos, como $ 1, $ 2

Sua função ficaria mais ou menos assim:
CREATE FUNCTION tarifador_func2() RETURNS TRIGGER
LANGUAGE plsh
AS $$
#!/bin/sh
/usr/bin/php /var/www/html/...regras.php $3 $6 $1

$$;

Observe que eu não usei $1 $2 $3 , isso porque plsh extensão despeja TODOS colunas em argumentos para que sejam declarados em sua tabela. Então você pode fazer algo como INSERT INTO table1 (column3) VALUES (6); e estará sob $3 em plsh , assumindo que esta é a terceira coluna na tabela.

Como uma observação lateral, os metadados do gatilho estão disponíveis por meio de env vars.