Re: porque se pierde una transacción con errores de sintaxis

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: Hellmuth Vargas <hivs77(at)gmail(dot)com>
Cc: Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: porque se pierde una transacción con errores de sintaxis
Date: 2019-01-10 20:11:46
Message-ID: CAASDfF1wVHa1VBPaYMsdEfLLhu8YL+gQSeoZ58EWDNMWBFErZQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Hellmuth, puedes utilizar savepoint en tus transacciones y luego
rollback a ese savepoint que quieres volver

por ejemplo

test=# CREATE TABLE TEMP2(id int);
CREATE TABLE
test=# begin;
BEGIN
test=#
test=#
test=# insert into temp2(id) values (1),(2),(3);
INSERT 0 3
test=# savepoint punto1;
SAVEPOINT
test=# selec * from temp2;
ERROR: error de sintaxis en o cerca de «selec»
LÍNEA 1: selec * from temp2;
^
test=# ROLLBACK TO SAVEPOINT punto1;
ROLLBACK
test=# commit;
COMMIT
test=# select * from temp2;
id
----
1
2
3
(3 filas)

test=#

Saludos

El jue., 10 ene. 2019 a las 17:01, Hellmuth Vargas (<hivs77(at)gmail(dot)com>)
escribió:

> Hola Lista
>
> esta aun temprano en el año para poner pereque, pero les tengo la
> siguiente duda: he tenido que trabajar en consola estos últimos días y pues
> aveces (mas frecuente de lo que quisiera) se comenten errores al digitar,
> el asunto en concreto es que se puede tener una transaccion abierta,
> ejecutando sentencias y de pronto se comete un error de SINTAXIS y la
> transacción se pierde :-S. creo que no debería porque no se trata de un
> error de referencialidad ni check,ni unique... en general un error que
> afecte la integridad de la base...o que opinan ustedes?
>
> A continuación un ejemplo:
>
>
> /opt/PostgreSQL/9.5/bin/psql -U postgres -W pruebas
> Password for user postgres:
> psql (9.5.9)
> Type "help" for help.
>
> pruebas=#
> pruebas=# CREATE TABLE TEMP2(id int);
> CREATE TABLE
> pruebas=# begin;
> BEGIN
> pruebas=# insert into temp2(id) values (1),(2),(3);
> INSERT 0 3
> pruebas=#
> pruebas=# select * from temp2;
> id
> ----
> 1
> 2
> 3
> (3 rows)
>
> pruebas=# selec * from temp2;
> ERROR: syntax error at or near "selec"
> LINE 1: selec * from temp2;
> ^
> pruebas=# select * from temp2;
> ERROR: current transaction is aborted, commands ignored until end of
> transaction block
> pruebas=# commit;
> ROLLBACK
> pruebas=# select * from temp2;
> id
> ----
> (0 rows)
>
>
>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2019-01-10 20:14:34 Re: porque se pierde una transacción con errores de sintaxis
Previous Message Hellmuth Vargas 2019-01-10 20:00:52 porque se pierde una transacción con errores de sintaxis