Re: Error en Drop Tablespace

From: José Alberto Sánchez Nieto <albertosanchez(at)hiperusera(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Error en Drop Tablespace
Date: 2007-10-04 16:21:18
Message-ID: 470512FE.4060805@hiperusera.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias, desde el psql me ha funcionado perfectamente, el archivo
que se genera en el directorio donde voy a colocar los tablespaces se
llama PG_VERSION, ya digo que me aseguro de dejarlo vacío, luego
ejecutaba desde el pgadmin y me decía que no podía borrar los
tablespaces porque el directorio contenía algo miro y está creado ese
archivo que dentro lleva la versión del postgres que tengo la 8.2.
Gracias a todos.

Alvaro Herrera escribió:
> José Alberto Sánchez Nieto escribió:
>
>> Gracias por contestar pero sigo teniendo una duda, yo vengo del mundo
>> oracle y allí el bloque empieza con BEGIN, etc, con esto hago una
>> transacción con muchas órdenes dentro pero aquí no las estoy ejecutando
>> una tras otra, lo estoy ejecutando desde el pgadminIII. También he
>> detectado que el pgadmin me crea un archivo con la versión del postgres en
>> el
>> directorio de los tablespace y entonces al ir a borrarlos no me deja ¿como
>> puedo evitarlo?, yo lo que tengo en el script es algo como esto:
>>
>
> Dave Page me dice lo siguiente: el "query tool" de pgAdmin no es como
> psql, que separa las sentencias y las manda por separado. Lo que hace
> es mandarlas todas juntas, en una sola invocacion a PQexec(). Cuando se
> hace esto, todas se ejecutan en una sola transaccion; y Postgres rechaza
> multiples sentencias DROP TABLESPACE en una sola transaccion.
>
> Es posible que funcionara si hicieras algo como esto:
>
> DROP SCHEMA IF EXISTS B85139855 CASCADE;
> DROP ROLE IF EXISTS vhalmanar;
> BEGIN;
> DROP TABLESPACE IF EXISTS DAT_GRANT_B85139855;
> COMMIT;
> BEGIN;
> DROP TABLESPACE IF EXISTS DAT_MEDIUM_B85139855;
> COMMIT;
> BEGIN;
> DROP TABLESPACE IF EXISTS DAT_SMALL_B85139855;
> COMMIT;
>
> Etc, o sea demarcar explicitamente las transacciones. (No lo hice para
> las dos primeras sentencias porque DROP SCHEMA y DROP ROLE funcionan
> correctamente dentro de una transaccion).
>
> La otra alternativa es pasarle el archivo a psql -f, en lugar de usar
> pgAdmin. (Esto te permite, ademas, evitar copy&paste cada vez ... solo
> le pasas el nombre del archivo y ya. O bien abres psql y haces
> "\i c:/path/al/archivo" y te lo ejecuta completo).
>
> psql no tiene el mismo problema de pgAdmin, porque es mas sofisticado:
> lo que hace es dividir la cadena en cada una de las consultas que la
> componen (separando con el punto y coma) y enviandolas por separado. De
> esa forma, cada una se ejecuta en una transaccion individual.
>
>

--
José Alberto Sánchez Nieto
Responsable Dpto. Informática

Hiper Usera, S.L.
C.I.F. B-85139855
Avda. Principal s/n, Pol. Industrial Las Avenidas
Torrejón de la Calzada (Madrid)
C.P. 28991
Telf: 91 860 99 00
Fax: 91 816 00 00
email: albertosanchez(at)hiperusera(dot)es

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message eduardo.rodriguez 2007-10-04 16:54:04 Off Topic Java con postgres
Previous Message usuario anonimo 2007-10-04 16:20:36 Re: ayuda URGENTE