PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dynamiczne zapytanie w funkcji wyzwalacza w PostgreSQL

Musiałem zmienić NEW do ($1) ponieważ jest to odniesienie do pierwszego powiązanego parametru.

Prawidłowe zapytanie to:

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. (Python) instalacja psycopg2

  2. PostgreSQL 9.4:Aggregate / Join table na identyfikator pola JSON wewnątrz tablicy

  3. Jaka jest równoważna składnia PostgreSQL dla Oracle CONNECT BY ... START WITH?

  4. PostgreSQL - utwórz nową bazę danych za pomocą interfejsu użytkownika pgAdmin

  5. Pobierz funkcje DDL polecenie