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.
>
>
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 |