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

Cara meneruskan NEW.* ke EXECUTE dalam fungsi pemicu

Terbaik dengan USING klausa EXECUTE :

CREATE FUNCTION foo ()
  RETURNS trigger AS
$func$
BEGIN
  IF TG_OP = 'INSERT' THEN
     EXECUTE format('INSERT INTO %s SELECT $1.*'
                  , 'samples_' || left(NEW.md5, 2);
     USING NEW;
  END IF;
  RETURN NULL;
END
$func$ LANGUAGE plpgsql;

Dan EXECUTE tidak memerlukan tanda kurung.
Dan Anda mengetahui bahwa pengidentifikasi dilipat menjadi huruf kecil kecuali jika dikutip jika perlu (%I bukannya %s dalam format() ).

Selengkapnya:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah Anda membuat urutan pada kolom yang sudah ada di Postgres

  2. Ikat param array ke kueri asli

  3. Perbedaan Antara dua tanggal postgresql Dalam Format Excel

  4. Bagaimana Cosd() Bekerja di PostgreSQL

  5. Mengapa menentukan panjang untuk berbagai jenis karakter