trigger procedimientos hacer funciones español datos consultas con como comandos bases almacenados administración sql postgresql triggers

sql - procedimientos - Crear o reemplazar desencadenador postgres



manual de postgresql 10 en español pdf (2)

Postres tiene la transacción DDL, por lo que BEGIN > DROP > CREATE > COMMIT is the equivalent of CREATE O REPLACE`

https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis es una buena descripción de cómo el DDL transaccional de Postgre se compara con otros sistemas (como Oracle)

Las características planificadas actuales de postgres con respecto a los factores desencadenantes ( https://wiki.postgresql.org/wiki/Todo#Triggers ) no incluyen la adición de la sintaxis REPLACE

Quiero "crear o reemplazar" un disparador para una tabla de postgres. Sin embargo, no hay tal expresión SQL.

Veo que puedo hacer un "DISPARO DE LA GOTA SI EXISTE" primero ( http://www.postgresql.org/docs/9.5/static/sql-droptrigger.html ).

Mi pregunta es:

  1. ¿Hay una opción recomendada / mejor que (desencadenador DROP + CREATE)
  2. ¿Hay alguna razón por la cual no haya tal "activador de crear o reemplazar" (lo que podría implicar que no debería querer hacerlo)?

Tenga en cuenta que hay un "Crear o reemplazar un desencadenador" en el oráculo ( https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm ). Entonces,

  1. ¿Está planeado tal comando para Postgres?

No hay forma de crear o reemplazar un disparador, pero se puede hacer de esta manera

DROP TRIGGER IF EXISTS yourtrigger_name on "yourschemaname"."yourtablename";