sql >> Databáze >  >> RDS >> PostgreSQL

Spuštění systémového příkazu s argumentem ve funkci PostgreSQL

K některým máte přístup hodnoty v plsh triggerech.

  • AKTUALIZACE nabízí pouze STARÉ
  • INSERT nabízí pouze NEW (duh)
  • DELETE Netestoval(a) jsem

Tyto hodnoty tedy získáte pomocí argumentů, například $1, $2

Vaše funkce by vypadala asi takto:

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

$$;

Všimněte si, že jsem nepoužil $1 $2 $3 , to je proto, že plsh rozšíření vypíše VŠECHNY sloupce do argumentů v pořadí, v jakém jsou deklarovány ve vaší tabulce. Můžete tedy udělat něco jako INSERT INTO table1 (column3) VALUES (6); a bude pod $3 v plsh , za předpokladu, že se jedná o třetí sloupec v tabulce.

Jako vedlejší poznámka, metadata spouštěče jsou dostupná prostřednictvím env vars.



  1. Nelze otevřít knihovnu '/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1 při vytváření položky Database Monitor v zabbix

  2. Jak mohu zrušit všechny tabulky v databázi PostgreSQL?

  3. Nejlepší způsob, jak uložit vztah many-to-many v MySQL?

  4. Filtrování dat pomocí sady řádků JDBC