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

Kører systemkommando med argument i en PostgreSQL-funktion

Du kan få adgang til nogle værdier i plsh-udløsere.

  • OPDATERING tilbyder kun GAMLE
  • INSERT tilbyder kun NYE (duh)
  • SLET Jeg testede ikke

Så du får disse værdier ved hjælp af argumenter som $1, $2

Din funktion ville se sådan ud:

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

$$;

Bemærk, at jeg ikke brugte $1 $2 $3 , det er fordi plsh udvidelse dumper ALLE kolonner til argumenter i den rækkefølge, de er erklæret i din tabel. Så du kan gøre noget som INSERT INTO table1 (column3) VALUES (6); og det vil være under $3 i plsh , forudsat at dette er tredje kolonne i tabellen.

Som en sidebemærkning er metadata for trigger tilgængelige via env vars.



  1. Problem med JOOQ json-binding

  2. Mysql rækkefølge efter på kolonne med unicode-tegn

  3. Gruppér fortløbende værdier i MySQL og tilføj et id til sådanne grupper

  4. Oracle PL/SQL:bloker parallel udførelse