PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menjalankan perintah sistem dengan argumen dalam fungsi PostgreSQL

Anda dapat mengakses beberapa nilai dalam pemicu pls.

  • UPDATE hanya menawarkan LAMA
  • MASUKKAN hanya penawaran BARU (duh)
  • HAPUS Saya tidak menguji

Jadi, Anda mendapatkan nilai tersebut menggunakan argumen, seperti $1, $2

Fungsi Anda akan terlihat seperti ini:

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

$$;

Perhatikan bahwa saya tidak menggunakan $1 $2 $3 , itu karena plsh ekstensi membuang SEMUA kolom menjadi argumen agar dideklarasikan di tabel Anda. Jadi, Anda mungkin melakukan sesuatu seperti INSERT INTO table1 (column3) VALUES (6); dan itu akan berada di bawah $3 di plsh , dengan asumsi ini adalah kolom ketiga dalam tabel.

Sebagai catatan tambahan, metadata pemicu tersedia melalui 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. Dapatkan nilai presisi ganda dari string yang tidak konsisten untuk menggunakan ST_GeomFromText (PostGIS)

  2. POSTGRES memeriksa apakah nilai yang diberikan ada di kolom tipe array

  3. Ukuran optimal untuk partisi Database

  4. PostgreSQL:Pelanggaran unik:7 ERROR:nilai kunci duplikat melanggar batasan unik users_pkey

  5. Apa yang seharusnya menjadi tipe parameter di Java ketika itu adalah stempel waktu tanpa zona waktu di postgresql?