PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Динамична заявка в тригерна функция в PostgreSQL

Трябваше да променя NEW към ($1) тъй като това е препратка към първия обвързан параметър.

Правилната заявка е:

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. Преброяване на поява на стойности в сериализиран атрибут (масив) в таблото за управление на Active Admin (Rails, Active admin 1.0, Postgresql база данни, postgres_ext gem)

  2. Повторно използване на изчислената избрана стойност

  3. Най-лесният начин да заглушите думата е твърде дълга, за да бъде индексирана известия в PostgreSQL

  4. Функция за проследяване на зависимости

  5. Грешка на pgAdmin - релация [име на функция/Изгледи/Тригерни функции] не съществува