PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изпълнение на системна команда с аргумент във функция на PostgreSQL

Имате достъп до някои стойности в plsh задействания.

  • АКТУАЛИЗАЦИЯ предлага само СТАРИ
  • INSERT предлага само НОВО (да)
  • ИЗТРИВАНЕ Не съм тествал

Така че получавате тези стойности с помощта на аргументи, като $1, $2

Вашата функция ще изглежда така:

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

$$;

Забележете, че не използвах $1 $2 $3 , това е така, защото plsh изхвърляния на разширения ВСИЧКИ колони в аргументи по реда, в който са декларирани във вашата таблица. Така че можете да направите нещо като INSERT INTO table1 (column3) VALUES (6); и ще бъде под $3 в plsh , ако приемем, че това е третата колона в таблицата.

Като странична бележка, метаданните на тригера са достъпни чрез env vars.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django.db.utils.ProgrammingError:връзката bot_trade не съществува

  2. Дизайн на база данни за сдвояване, налагащо ограничения

  3. Вмъкване на множество редове с помощта на psycopg2

  4. PostgreSQL - Добавете ключ към всеки обект от JSONB масив

  5. Как можем да накараме „statement_timeout“ да работи вътре във функция?