Si configuro un disparador DESPUÉS en PostgreSQL para disparar después de una inserción/actualización, ¿tendrá que esperar el software de llamada para que el disparador finalice antes de devolver el control al software de llamada? ¿O el disparador se ejecutará por sí mismo detrás de las escenas?¿Después de un disparador en Postgres se bloqueará una inserción/actualización?
11
A
Respuesta
13
Sí, porque se ejecuta dentro de la misma transacción. Si el desencadenador falla, la inserción/actualización también fallará. Haga una prueba ejecutando una consulta que fallará (SELECCIONE una tabla que no existe) y podrá ver cómo funcionan las cosas y cómo se comportará su aplicación.
CREATE OR REPLACE FUNCTION foo() RETURNS TRIGGER
AS
$$
BEGIN
EXECUTE 'SELECT fail';
END;
$$
LANGUAGE plpgsql;
+0
¿hay alguna manera de evitar esto? Lo que significa que la operación de inserción/actualización no debería fallar incluso si falla el desencadenador. – Zoran777
Cuestiones relacionadas
- 1. pasar una variable en un disparador
- 2. ¿Existe un método simple para verificar si una instancia de Ruby IO se bloqueará en read()?
- 3. ¿Se puede modificar un disparador mysql existente después de haber sido creado?
- 4. ¿Por qué esta instrucción SELECT se bloqueará en SQL Server?
- 5. Uso del disparador de actualización tsvector en el activador de Postgres
- 6. Postgres gatillo después de insertar el acceso a nuevos
- 7. ¿En qué plataformas se bloqueará y cómo puedo mejorarlo?
- 8. Desencadenadores MySQL - DESPUÉS DE INSERTAR disparador + UDF sys_exec() problema
- 9. Agregar un comentario (descripción) a un disparador
- 10. ¿Cómo escribir un código de muestra que se bloqueará y producirá un archivo de volcado?
- 11. Use un disparador para detener una inserción o una actualización
- 12. ¿Cómo ejecuto una acción en drupal después de cada vez que se guarda un nodo?
- 13. permisos para crear un disparador en MySQL
- 14. ¿Hay un disparador que pueda usar si se usa una fuente alternativa en CSS?
- 15. Java serialización, ObjectInputStream.readObject(), compruebe si bloqueará
- 16. Hacer un rango en postgres
- 17. ¿Puede un disparador MySQL simular una restricción CHECK?
- 18. ¿Por qué una implementación de propiedad de dependencia bloqueará mi aplicación cuando proporcione un valor predeterminado?
- 19. postgres desencadenan la creación
- 20. Incrementar un valor en Postgres
- 21. crear un disparador que actualiza una columna en una tabla cuando se actualiza una columna de otra tabla
- 22. postgres crear un índice
- 23. ¿Qué pasa si falla un disparador?
- 24. ¿Alguna vez log4net bloqueará la aplicación?
- 25. ¿Cómo puedo disparar un disparador ANTES de una eliminación en T-SQL 2005?
- 26. Uso de un período variable en un intervalo en Postgres
- 27. ¿puedo abrir un disparador en la instrucción select en mysql?
- 28. Cómo "nombre" una consulta en postgres
- 29. Refiera el disparador de quartz.net después de 15 minutos si falla el trabajo con la excepción
- 30. disparador XAML como StaticResource
Si necesita algo para terminar "entre bastidores" su disparador podría utilizar dblink_send_query http://www.postgresql.org/docs/current/static/contrib-dblink-send-query.html enviar una solicitud asíncrona en su desencadenador, según sus requisitos. – rfusca