Se imposto un trigger AFTER in PostgreSQL per l'attivazione dopo un inserimento/aggiornamento, il software di chiamata deve attendere il completamento del trigger prima di restituire il controllo al software di chiamata? O il grilletto funzionerà da solo dietro le quinte?Un trigger AFTER in Postgres blocca un inserimento/aggiornamento?
11
A
risposta
13
Sì, perché è eseguito all'interno della stessa transazione. Se il trigger fallisce, anche l'inserimento/aggiornamento fallirà. Basta fare un test eseguendo una query che fallirà (SELEZIONA una tabella che non esiste) e puoi vedere come funzionano le cose e come si comporterà la tua applicazione.
CREATE OR REPLACE FUNCTION foo() RETURNS TRIGGER
AS
$$
BEGIN
EXECUTE 'SELECT fail';
END;
$$
LANGUAGE plpgsql;
+0
c'è un modo per evitarlo? Ciò significa che l'operazione di inserimento/aggiornamento non dovrebbe fallire anche se il trigger fallisce. – Zoran777
Problemi correlati
- 1. Funzione trigger Postgres
- 2. Come sviluppare un trigger after serverror in Oracle?
- 3. creazione di trigger per After Insert, After Update e After Delete in SQL
- 4. Trigger MySQL - trigger AFTER INSERT + problema UDF sys_exec()
- 5. Trigger MySQL: Elimina dalla tabella AFTER DELETE
- 6. Rilevamento delle modifiche alle colonne in un trigger di aggiornamento postgres
- 7. Connettersi a un URI in postgres
- 8. Crea campo autoincrement con trigger e sequenza in Postgres
- 9. : after vs. :: after
- 10. Crea un intervallo in postgres
- 11. Come creare un TRIGGER in SEQUELIZE (nodoJS)?
- 12. Crea un trigger mysql tramite PHP?
- 13. Memorizzare un file in postgres usando node-postgres
- 14. Possiamo avere un trigger singolo per più tabelle in MySQL
- 15. Eseguire un TestWatcher prima del @After
- 16. eliminare la riga con un Mysql trigger
- 17. Utilizzo di un periodo variabile in un intervallo in Postgres
- 18. MySQL trigger per generare un hash per un indice auto_increment
- 19. Aggiungere un commento (descrizione) a un trigger
- 20. Procedura di esecuzione in un trigger
- 21. Cosa fa DELIMITER // in un trigger?
- 22. Trigger in un sistema altamente transazionale
- 23. Passare una variabile in un trigger
- 24. Come creare un trigger MySQL in phpmyadmin
- 25. Creazione di un trigger in Oracle Express
- 26. Unire DataTrigger e Trigger in un MultiDataTrigger
- 27. Incremento di un valore in Postgres
- 28. Riavvio postgres in un ambiente finestra mobile
- 29. Postgres - aggregare due colonne in un elemento
- 30. Creare una query in mysql senza richiamare un trigger (Come disabilitare un trigger)
Se avete bisogno di qualcosa per finire "dietro le quinte" il trigger potrebbe usare dblink_send_query http://www.postgresql.org/docs/current/static/contrib-dblink-send-query.html per inviare un richiesta asincrona nel trigger - a seconda delle esigenze. – rfusca