PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exécution d'une commande système avec argument dans une fonction PostgreSQL

Vous pouvez accéder à certains valeurs dans les déclencheurs plsh.

  • UPDATE offre uniquement OLD
  • INSERT propose uniquement des NOUVEAUX (duh)
  • SUPPRIMER Je n'ai pas testé

Vous obtenez donc ces valeurs en utilisant des arguments, comme $1, $2

Votre fonction ressemblerait à ceci :

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

$$;

Remarquez que je n'ai pas utilisé $1 $2 $3 , c'est parce que plsh l'extension vide TOUT colonnes en arguments afin qu'elles soient déclarées dans votre table. Vous pouvez donc faire quelque chose comme INSERT INTO table1 (column3) VALUES (6); et il sera inférieur à $3 en plsh , en supposant qu'il s'agit de la troisième colonne du tableau.

En remarque, les métadonnées du déclencheur sont disponibles via env vars.