PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Uruchamianie polecenia systemowego z argumentem w funkcji PostgreSQL

Możesz uzyskać dostęp do niektórych wartości w wyzwalaczach plsh.

  • UPDATE oferuje tylko STARE
  • WSTAW oferty tylko NOWE (duh)
  • USUŃ, którego nie testowałem

Więc otrzymujesz te wartości za pomocą argumentów, takich jak $1, $2

Twoja funkcja wyglądałaby mniej więcej tak:

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

$$;

Zauważ, że nie użyłem $1 $2 $3 , ponieważ plsh zrzuty rozszerzeń WSZYSTKIE kolumny na argumenty w kolejności ich zadeklarowania w tabeli. Możesz więc zrobić coś takiego jak INSERT INTO table1 (column3) VALUES (6); i będzie poniżej $3 w plsh , zakładając, że jest to trzecia kolumna w tabeli.

Na marginesie, metadane wyzwalacza są dostępne w zmiennych środowiskach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JOIN na poziomie aplikacji z WHERE i ORDER BY na N fragmentach postgresql

  2. Zduplikowana wartość klucza IntegrityError narusza ograniczenie unikalności — django/postgres

  3. Konfiguracja Play 2.4.0 z Postgres i HikariCP powoduje błąd konfiguracji

  4. Przegląd buforowania dla PostgreSQL

  5. W Postgresql, jak zamawiać według daty, zachowując niestandardowy format daty