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

Kueri dinamis dalam fungsi pemicu di PostgreSQL

Saya harus mengubah NEW ke ($1) karena ini adalah referensi ke parameter terikat pertama.

Kueri yang benar adalah:

CREATE OR REPLACE FUNCTION "Site"."UpdateAncestorModified"()
  RETURNS trigger AS
$BODY$BEGIN
    EXECUTE
        format
        ('
            UPDATE 
                "' || TG_TABLE_SCHEMA || '"."' || TG_TABLE_NAME || '" 
            SET
                modified = ($1).modified
            WHERE
                id = ($1)."ancestorId"
            AND
                modified <> ($1).modified
        ')
    USING
        NEW;
    RETURN NEW;
END$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL LIMIT dengan klausa WHERE

  2. ORDER BY dinamis dan ASC / DESC dalam fungsi plpgsql

  3. ekstrak tanggal dari stempel waktu di postgreSQL

  4. Bagaimana cara memilih skema di postgres saat menggunakan psql?

  5. Permintaan Postgres untuk memeriksa string adalah angka