PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Esecuzione del comando di sistema con argomento in una funzione PostgreSQL

Puoi accedere ad alcuni valori nei trigger plsh.

  • UPDATE offre solo VECCHIA
  • INSERT offre solo NEW (duh)
  • ELIMINA Non ho eseguito il test

Quindi ottieni quei valori usando argomenti, come $1, $2

La tua funzione assomiglierebbe a questa:

CREATE FUNCTION tarifador_func2() RETURNS TRIGGER
LANGUAGE plsh
AS $$
#!/bin/sh
/usr/bin/php /var/www/html/...regras.php $3 $6 $1

$$;

Nota che non ho utilizzato $1 $2 $3 , questo perché plsh dump di estensione TUTTI colonne in argomenti nell'ordine in cui sono dichiarati nella tabella. Quindi potresti fare qualcosa come INSERT INTO table1 (column3) VALUES (6); e sarà sotto $3 in plsh , supponendo che questa sia la terza colonna nella tabella.

Come nota a margine, i metadati del trigger sono disponibili tramite env vars.