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

Bagaimana cara menggunakan EXECUTE FORMAT ... MENGGUNAKAN dalam fungsi postgres

Fungsi Anda dapat terlihat seperti ini di Postgres 9.0 atau yang lebih baru:

CREATE OR REPLACE FUNCTION dummytest_insert_trigger()
  RETURNS trigger AS
$func$
DECLARE
   v_partition_name text := quote_ident('dummyTest');  -- assign at declaration
BEGIN
   IF NEW.datetime IS NOT NULL THEN
      EXECUTE 
      'INSERT INTO ' || v_partition_name || ' VALUES ($1,$2)'
      USING NEW.id, NEW.datetime;              
   END IF;                    

   RETURN NULL;  -- You sure about this?
END
$func$  LANGUAGE plpgsql;

Tentang RETURN NULL :

  • Untuk mengabaikan hasil SEBELUM PEMICU PostgreSQL?

Saya akan menyarankan untuk tidak menggunakan pengidentifikasi kasus campuran. Dengan format( .. %I ..) atau quote_ident() , Anda akan mendapatkan tabel bernama "dummyTest" , yang harus Anda kutip dua kali selama sisa keberadaannya. Terkait:

  • Apakah nama kolom PostgreSQL peka huruf besar/kecil?

Gunakan huruf kecil sebagai gantinya:

quote_ident('dummytest')

Tidak ada gunanya menggunakan SQL dinamis dengan EXECUTE selama Anda memiliki nama tabel statis. Tapi itu mungkin hanya contoh yang disederhanakan?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BERGABUNG (PILIH ... ) pada 1=1?

  2. Melewati param ke DB .execute untuk WHERE IN... INT list

  3. Format keluaran alternatif untuk psql

  4. Startup aplikasi Spring Boot sangat lambat

  5. Bagaimana cara melihat kode CREATE VIEW untuk tampilan di PostgreSQL?