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

Bagaimana cara membuat fungsi pemicu secara dinamis di pgsql?

Dua bagian $$ menjadi bingung. Dengan menggunakan sintaks $name$, Anda dapat memisahkannya.

Pemicunya juga tidak memiliki RETURN.

CREATE OR REPLACE FUNCTION trigen(tbl text) RETURNS void AS $T1$
BEGIN
    EXECUTE format(
    'CREATE FUNCTION %s_insertCnt() RETURNS TRIGGER AS $T2$
    BEGIN
        UPDATE insertions SET n = n + 1 WHERE tablename = %s;
        RETURN NEW;
    END
    $T2$ LANGUAGE plpgsql', tbl, quote_nullable(tbl));

    EXECUTE format('CREATE TRIGGER %s_inCnt BEFORE INSERT ON %s
    FOR EACH ROW EXECUTE PROCEDURE %s_insertCnt();', tbl, tbl, tbl);
    END
$T1$ LANGUAGE plpgsql;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan Kunci Utama PostgreSQL hilang setelah migrasi menggunakan AWS DMS

  2. PostGIS - konversi multipoligon ke poligon tunggal

  3. Cara termudah untuk membungkam kata terlalu panjang untuk diindeks pemberitahuan di PostgreSQL

  4. Bagaimana cara membuat ulang tabel yang dihapus dengan Django Migrations?

  5. Bagaimana menjaga data tidak mengurutkan?