RE: Error al crear BD en una transaccion

Lists: pgsql-es-ayuda
From: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Error al crear BD en una transaccion
Date: 2007-12-11 16:44:46
Message-ID: BAY135-W4A2B8CD9553C0963412C8ED640@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Compañer(at)s(dot) Disculpen la pregunta, tal vez es muy simple pero he buscado la respuesta sin éxito. ¿Porqué no puedo crear una base de datos dentro de en una transacción?. Gracias por su ayuda James

Express yourself instantly with MSN Messenger! MSN Messenger
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


From: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
To: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Error al crear BD en una transaccion
Date: 2007-12-11 16:45:42
Message-ID: 475EBEB6.3080802@ort.edu.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

James Alonso Barrientos Santos wrote:
>
>
> Hola Compañer(at)s <mailto:Compa%F1er(at)s>.
>
>
> Disculpen la pregunta, tal vez es muy simple pero he buscado la
> respuesta sin éxito. ¿Porqué no puedo crear una base de datos
> dentro de en una transacción?.
>
>
>
> Gracias por su ayuda
>
> James
>
>
>
> ------------------------------------------------------------------------
> Express yourself instantly with MSN Messenger! MSN Messenger
> <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>
>
>
> ------------------------------------------------------------------------
> Express yourself instantly with MSN Messenger! MSN Messenger
> <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>
Cual es la idea de hacer eso?


From: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Error al crear BD en una transaccion
Date: 2007-12-11 17:26:46
Message-ID: BAY135-W37ED973EBC476911C12A5FED640@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Fernando:

Es correcto como lo planteaste, lo entendiste bien.

De hecho al no tener la respuesta de porque no se puede crear una BD en una transaccion, tuve que simular una, en donde verifico que si algún query no se realiza, deshago todo (mi propio rollback).

Pero ojalá alguno de los compañeros de la lista nos indique porque no se puede crear una BD dentro de una transacción, me parece algo tan lógico que creo que algo no hice bien. pero lo probe muchas veces y nada.

Ojala alguien pueda decirnos algo al respecto

Gracias

James

> Date: Tue, 11 Dec 2007 15:12:23 -0200> From: rodriguez(at)ort(dot)edu(dot)uy> To: jab_santos(at)hotmail(dot)com> Subject: Re: [pgsql-es-ayuda] Error al crear BD en una transaccion> > James Alonso Barrientos Santos wrote:> > Hola Fernando:> > > > Muchas gracias por contestar, te explico la situación.> > > > Estoy haciendo un sistema que crea una base de datos espacial > > (postgre+postgis) cuando un usuario se da de alta.> > > > Después de crearle la Base de datos, le doy permisos a ciertas tablas > > de esta BD y hago otras consultas que necesitan que este creada.> > > > En resumen necesito que se ejecuten todas la consultas o ninguna(tal > > cual es una transaccion) de lo contrario, si falla la creacion de la > > BD espacial o las siguientes consultas, se queda inconsistente el > > sistema porque, o se queda creada una BD sin permisos de esas tablas o > > falla las consultas porque no se pudo crear la BD.> > > > Ojalá me haya explicado bien. Si no te pido disculpas y lo trato de > > explicar otra vez.> > > > Gracias> > > > James > >> >> >> > ------------------------------------------------------------------------> >> > > Date: Tue, 11 Dec 2007 14:45:42 -0200> > > From: rodriguez(at)ort(dot)edu(dot)uy> > > To: jab_santos(at)hotmail(dot)com> > > CC: pgsql-es-ayuda(at)postgresql(dot)org> > > Subject: Re: [pgsql-es-ayuda] Error al crear BD en una transaccion> > >> > > James Alonso Barrientos Santos wrote:> > > >> > > >> > > > Hola Compañer(at)s <mailto:Compa%F1er(at)s>.> > > >> > > >> > > > Disculpen la pregunta, tal vez es muy simple pero he buscado la> > > > respuesta sin éxito. ¿Porqué no puedo crear una base de datos> > > > dentro de en una transacción?.> > > >> > > >> > > >> > > > Gracias por su ayuda> > > >> > > > James> > > >> > > >> > > >> > > > > > ------------------------------------------------------------------------> > > > Express yourself instantly with MSN Messenger! MSN Messenger> > > > <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>> > > >> > > >> > > > > > ------------------------------------------------------------------------> > > > Express yourself instantly with MSN Messenger! MSN Messenger> > > > <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>> > > Cual es la idea de hacer eso?> >> >> > ------------------------------------------------------------------------> > Express yourself instantly with MSN Messenger! MSN Messenger > > <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>> Si es correcto lo que entendí , esto sería asi:> creo el usuario> creo la base de datos> creo estructuras> doy permisos> > Si esto es asi deberias poder capturar el error y deshaer las cosas > aunque sea a mano, es cierto que es mas facil a mano, pero creo que asi > funciona.> En cuanto a lo de la transaccion unica, nunca lo probé..> > Saludos Fernando
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


From: jlcambero <jlcambero(at)emergya(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Error al crear BD en una transaccion
Date: 2007-12-11 18:09:01
Message-ID: 200712111909.01640.jlcambero@emergya.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

> El Martes, 11 de Diciembre de 2007 18:26, James Alonso Barrientos Santos
escribió:
> Hola Fernando:
>
> Es correcto como lo planteaste, lo entendiste bien.
>
> De hecho al no tener la respuesta de porque no se puede crear una BD en una
> transaccion, tuve que simular una, en donde verifico que si algún query no
> se realiza, deshago todo (mi propio rollback).
>
> Pero ojalá alguno de los compañeros de la lista nos indique porque no se
> puede crear una BD dentro de una transacción, me parece algo tan lógico que
> creo que algo no hice bien. pero lo probe muchas veces y nada.
>
> Ojala alguien pueda decirnos algo al respecto
>
> Gracias

Hola, me he ido a la documentación del comando create database y...
Notes
CREATE DATABASE cannot be executed inside a transaction block.

http://www.postgresql.org/docs/8.2/interactive/sql-createdatabase.html

Un saludo


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Error al crear BD en una transaccion
Date: 2007-12-11 18:47:49
Message-ID: 20071211184749.GI10710@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

James Alonso Barrientos Santos escribió:

> Hola Compañer(at)s(dot) Disculpen la pregunta, tal vez es muy simple pero he
> buscado la respuesta sin éxito. ¿Porqué no puedo crear una base de
> datos dentro de en una transacción?. Gracias por su ayuda James

No está permitido porque si falla no hay manera de hacer "rollback" de
algunos cambios. Por ej. si hicieras dos CREATE DATABASE en una
transacción y luego hicieras un ROLLBACK, no hay manera de deshacer el
primer CREATE DATABASE (y en realidad, el segundo tampoco).

La razón es que esta orden se implementa copiando los archivos de la
base de datos plantilla, y no es fácil deshacer esta operación: habría
que recordar exactamente qué archivos se copiaron y qué directorios se
crearon, para borrarlos luego en ROLLBACK.

--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"In a specialized industrial society, it would be a disaster
to have kids running around loose." (Paul Graham)


From: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Error al crear BD en una transaccion
Date: 2007-12-11 19:28:04
Message-ID: BAY135-W2973128F3A3A907E9CDE3AED640@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola jlcambero(at)emergya(dot)es
Gracias por la página de documentación. Ya la habia leido pero no vi la nota.

Me parece un poquito ilogico no creen?? que no se pueda hacer algo importante como la creacion de una bd en una transaccion. pero estoy seguro de que ellos saben porque, aunque me gustaría saberlo tambien.

Muchas gracias a todos.

James

> From: > To: pgsql-es-ayuda(at)postgresql(dot)org> Subject: Re: [pgsql-es-ayuda] Error al crear BD en una transaccion> Date: Tue, 11 Dec 2007 19:09:01 +0100> > > El Martes, 11 de Diciembre de 2007 18:26, James Alonso Barrientos Santos > escribió:> > Hola Fernando:> >> > Es correcto como lo planteaste, lo entendiste bien.> >> > De hecho al no tener la respuesta de porque no se puede crear una BD en una> > transaccion, tuve que simular una, en donde verifico que si algún query no> > se realiza, deshago todo (mi propio rollback).> >> > Pero ojalá alguno de los compañeros de la lista nos indique porque no se> > puede crear una BD dentro de una transacción, me parece algo tan lógico que> > creo que algo no hice bien. pero lo probe muchas veces y nada.> >> > Ojala alguien pueda decirnos algo al respecto> >> > Gracias> > Hola, me he ido a la documentación del comando create database y...> Notes> CREATE DATABASE cannot be executed inside a transaction block. > > http://www.postgresql.org/docs/8.2/interactive/sql-createdatabase.html> > Un saludo> --> TIP 2: puedes desuscribirte de todas las listas simult�neamente> (env�a "unregister TuDirecci�nDeCorreo" a majordomo(at)postgresql(dot)org)
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


From: James Alonso Barrientos Santos <jab_santos(at)hotmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Error al crear BD en una transaccion
Date: 2007-12-11 22:49:54
Message-ID: BAY135-W4475AC4ABF7A4A8A2C6B41ED640@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Muchas gracias a todos, sus respuestas fueron de gran ayuda compañeros.

James

From: jabreu(at)aaa(dot)com(dot)doTo: jab_santos(at)hotmail(dot)comSubject: RE: [pgsql-es-ayuda] Error al crear BD en una transaccionDate: Tue, 11 Dec 2007 16:14:31 -0400

Creo que es todo lo contrario, ahora te explico. Aquí tienes alguna información, si sabes bien lo que es la definición de una transacción sabrás entonces que esta se define como una colección de operaciones que se lleva a cabo como una función lógica simple en una aplicación de base de datos. Cada transacción es una unidad de atomicidad y consistencia. La atomicidad aquí se entiende como la capacidad de que muchas instrucciones se entiendan en ciertos casos como una sola, la consistencia se refiere a la capacidad de respetar las restricciones de consistencia de datos que posee la base de datos antes y después de ejecutar una transacción. El gestor de transacciones es el responsable de asegurar que la base de datos permanezca en un estado consistente a pesar de los fallos del sistema. El gestor de transacciones también asegura que la ejecución de transacciones concurrentes ocurran sin conflictos. El gestor de almacenamiento de la base de datos es un programa (o modulo) que proporciona la interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y las consultas enviadas al sistema.

De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de James Alonso Barrientos SantosEnviado el: Martes, 11 de Diciembre de 2007 03:28 p.m.Para: pgsql-es-ayuda(at)postgresql(dot)orgAsunto: RE: [pgsql-es-ayuda] Error al crear BD en una transaccion

Hola jlcambero(at)emergya(dot)esGracias por la página de documentación. Ya la habia leido pero no vi la nota. Me parece un poquito ilogico no creen?? que no se pueda hacer algo importante como la creacion de una bd en una transaccion. pero estoy seguro de que ellos saben porque, aunque me gustaría saberlo tambien. Muchas gracias a todos. James

> From: > To: pgsql-es-ayuda(at)postgresql(dot)org> Subject: Re: [pgsql-es-ayuda] Error al crear BD en una transaccion> Date: Tue, 11 Dec 2007 19:09:01 +0100> > > El Martes, 11 de Diciembre de 2007 18:26, James Alonso Barrientos Santos > escribió:> > Hola Fernando:> >> > Es correcto como lo planteaste, lo entendiste bien.> >> > De hecho al no tener la respuesta de porque no se puede crear una BD en una> > transaccion, tuve que simular una, en donde verifico que si algún query no> > se realiza, deshago todo (mi propio rollback).> >> > Pero ojalá alguno de los compañeros de la lista nos indique porque no se> > puede crear una BD dentro de una transacción, me parece algo tan lógico que> > creo que algo no hice bien. pero lo probe muchas veces y nada.> >> > Ojala alguien pueda decirnos algo al respecto> >> > Gracias> > Hola, me he ido a la documentación del comando create database y...> Notes> CREATE DATABASE cannot be executed inside a transaction block. > > http://www.postgresql.org/docs/8.2/interactive/sql-createdatabase.html> > Un saludo> --> TIP 2: puedes desuscribirte de todas las listas simult�neamente> (env�a "unregister TuDirecci�nDeCorreo" a majordomo(at)postgresql(dot)org)

Express yourself instantly with MSN Messenger! MSN Messenger
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/