PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ausführen des Systembefehls mit Argument in einer PostgreSQL-Funktion

Sie können auf einige zugreifen Werte in plsh-Triggern.

  • UPDATE bietet nur OLD an
  • INSERT bietet nur NEU an (duh)
  • LÖSCHEN Ich habe es nicht getestet

Sie erhalten diese Werte also mit Argumenten wie $1, $2

Ihre Funktion würde etwa so aussehen:

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

$$;

Beachten Sie, dass ich $1 $2 $3 nicht verwendet habe , das liegt daran, dass plsh Erweiterung gibt ALLE aus Spalten in Argumente um, damit sie in Ihrer Tabelle deklariert werden. Sie könnten also etwas wie INSERT INTO table1 (column3) VALUES (6); tun und es wird unter $3 liegen in plsh , vorausgesetzt, dies ist die dritte Spalte in der Tabelle.

Nebenbei bemerkt, Metadaten des Triggers sind über Env-Variablen verfügbar.