sql >> Databasteknik >  >> RDS >> PostgreSQL

Kör systemkommando med argument i en PostgreSQL-funktion

Du kan komma åt en del värden i plsh-utlösare.

  • UPPDATERA erbjuder endast GAMLA
  • INSERT erbjuder endast NYTT (duh)
  • RADERA Jag testade inte

Så du får dessa värden med hjälp av argument, som $1, $2

Din funktion skulle se ut ungefär så här:

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

$$;

Lägg märke till att jag inte använde $1 $2 $3 , det beror på att plsh tillägget dumpar ALLA kolumner till argument i den ordning de deklareras i din tabell. Så du kan göra något som INSERT INTO table1 (column3) VALUES (6); och det kommer att vara under $3 i plsh , förutsatt att detta är tredje kolumnen i tabellen.

Som en sidoanteckning är metadata för trigger tillgänglig via env vars.



  1. Alla användbara 11g dynamiska prestandavyer

  2. SQL välj flera rader i en kolumn

  3. MySQL-index – vilka är de bästa metoderna?

  4. Micronaut ansluter inte till db i yml