Gunnar Wolf dijo [Thu, Jan 20, 2011 at 06:23:26PM -0600]: > Desconozco las sutilezas de las reglas, pero... ¿Qué pasa si.. > > • Abro una transacción > • Hago un select > • Hago rollback > > ..? > > ¿Se registra o no?
Ok, acá me encontré la respuesta: +------------------------------------------------------------ | http://www.mail-archive.com/pgsql-general@postgresql.org/msg74280.html +------------------------------------------------------------ | > But is nowhere stated if (multiple) commands inside a rule are | > treated | > as an implicit transaction as a whole. | | If you don't specifically open a transaction at the top level (i.e. in | 'psql' or SQL from your application's code), PG will encapsulate every | query you execute within its own transaction. The statements in any | rules called will execute in the context of that transaction, along | with any other operations such as trigger calls, table updates, | whatever. If something in that implicit transaction fails, it will be | rolled back; otherwise, it will be committed once the statement is | finished. | | Also, you need to think of rules as 'query rewrites' rather than | 'code that executes', because that's what they are. | | I hope that helps. | | -Doug +------------------------------------------------------------ En pocas palabras: Una regla reescribe las solicitudes, por lo cual todo lo que dispares desde una regla queda inscripto en la misma transacción en la que estabas. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda