Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > PostgreSQL

Respuesta
 
Herramientas Desplegado
Antiguo 11-mar-2008, 13:47   #1 (permalink)
Carxl está en el buen camino
 
Avatar de Carxl
 
Fecha de Ingreso: agosto-2006
Ubicación: Algún lugar en Colombia
Mensajes: 1.641
Enviar un mensaje por MSN a Carxl Enviar un mensaje por Skype™ a Carxl
De acuerdo Deshacer insert, update, delete?

Hola a todos, cómo van??

Pues tengo una pregunta creo que en general para Bases de datos, pero como la necesito para Postgres, entonces la hago acà.... disculpas sino.

Postgres me permite devolver un insert?? un delete? o un update? Osea hay alguna forma de "rollback" en Base de datos?? Deshacer algun tipo de acción??

No sé si estaré preguntando una bobada, pero es que no tengo la verdad no sè.

Muchas gracias de antemano por las respuestas...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
Por ahora sin blog...
Made in Colombia papá!
Carxl esta en línea ahora   Responder Citando
Antiguo 11-mar-2008, 15:30   #2 (permalink)
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 460
Enviar un mensaje por Yahoo  a Sergestux
Re: Deshacer insert, update, delete?

Quizas te refieres a las transacciones
BEGIN, COMMIT, ROLLBACK, SET TRANSACTION

Por aca en spanish
__________________
You'll be free, hackers, you'll be free
Sergestux está desconectado   Responder Citando
Antiguo 11-mar-2008, 15:48   #3 (permalink)
Carxl está en el buen camino
 
Avatar de Carxl
 
Fecha de Ingreso: agosto-2006
Ubicación: Algún lugar en Colombia
Mensajes: 1.641
Enviar un mensaje por MSN a Carxl Enviar un mensaje por Skype™ a Carxl
De acuerdo Re: Deshacer insert, update, delete?

Hola Sergestux, gracias por responder

Leì los links que me pasaste, pero no logro aclarar mi duda... Si ya hice un update, con cual de estas instrucciones que me pasaste, logro deshacer esa transacción?? Rollback?? pero no sè si estoy bien.

Gracias de antemano
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
Por ahora sin blog...
Made in Colombia papá!
Carxl esta en línea ahora   Responder Citando
Antiguo 11-mar-2008, 16:12   #4 (permalink)
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 460
Enviar un mensaje por Yahoo  a Sergestux
Re: Deshacer insert, update, delete?

Exactamente con rollback
Esto es lo que hago en php
Código PHP:
        pg_query$conexion,  'BEGIN;');            //Inicio la Transaccion
        
$SQL="UPDATE ....;";
        
$resultado pg_query$conexion,  $SQL);   //Por si quieres evaluar el resultado
        
pg_query$conexion,  'COMMIT;');            //Comprometo la Transaccion 
Si hay alguna falla en el update, no se ejecuta el commit y automaticamente se ejecuta el rollback, aunque tambien puedes hacerl explicitamente
__________________
You'll be free, hackers, you'll be free
Sergestux está desconectado   Responder Citando
Antiguo 11-mar-2008, 16:35   #5 (permalink)
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 460
Enviar un mensaje por Yahoo  a Sergestux
Re: Deshacer insert, update, delete?

Sorry por contestarte tan apresurado, pero andaba yo almorzando.
Este podria ser un ejemplo mas claro:
Código PHP:
select from empleados;
BEGIN;
UPDATE empleados SET nombre='';
DELETE FROM empleados;
/*Cualquier otra sentencia (UPDATE, INSERT, DELETE...)*/
...
ROLLBACK;
select from empleados
Al final no se haria ninguna modificacion y la tabla daria el mismo resultado al principio y al final
__________________
You'll be free, hackers, you'll be free
Sergestux está desconectado   Responder Citando
Antiguo 12-mar-2008, 04:12   #6 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.062
Re: Deshacer insert, update, delete?

carlx, como te indica Sergestux, puedes hacer un rollback dentro de cualquier transación siempre y cuando no se haya hecho el commit.

Una vez realizado el commit no puedes deshacer una transacion en postgres (que yo sepa).

Un saludo
seyko está desconectado   Responder Citando
Antiguo 13-mar-2008, 11:52   #7 (permalink)
Carxl está en el buen camino
 
Avatar de Carxl
 
Fecha de Ingreso: agosto-2006
Ubicación: Algún lugar en Colombia
Mensajes: 1.641
Enviar un mensaje por MSN a Carxl Enviar un mensaje por Skype™ a Carxl
De acuerdo Re: Deshacer insert, update, delete?

Hola a todos de nuevo...

Sergestux, seyko muchas gracias por sus respuestas y aclaraciones

Sergestux, tu ejemplo me ayudò para entender la sintaxis y como apliacarla, pero me ha quedado una duda... Osea que la funciòn del rollback si yo la coloco explicitamente, me devuelve esa transacción, la deshace??? Y si no la coloco pero hubo un error?? Y lo del commit, cual es la ventaja, desventaja??

Me podrìan aclarar un poco mas por favor??, creo que mis preguntas son mas teòricas que pràcticas Disculpas por la molestia y de nuevo gracias

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
Por ahora sin blog...
Made in Colombia papá!
Carxl esta en línea ahora   Responder Citando
Antiguo 13-mar-2008, 12:57   #8 (permalink)
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 460
Enviar un mensaje por Yahoo  a Sergestux
Re: Deshacer insert, update, delete?

El COMMIT es cuando quieres 'comprometer' la transaccion o sea que si pones un comit puedes estar seguro que tus sentencias incluidas en la transaccion se efectuaron correctamente, en caso de haber un error el postgres te mandaria un mensaje de error (haria un rollback automatico) y no se haria ningun cambio, si utilizas el ROLLBACK, no te mandaria ningun mensaje de error y tampoco hiciera ningun cambio.

Pero esto es asi por esto:
Cita:
Por defecto, PostgreSQL ejecuta las transacciones en modo no encadenado (tambien conocido como "autocommit" en otros sistemas de base de datos). En otras palabras, cada estado de usuario es ejecutado en su propia transaccion y un commit se ejecuta implicitamente al final del estatuto (si la ejecucion fue exitosa, de otro modo se ejecuta un rollback).
__________________
You'll be free, hackers, you'll be free
Sergestux está desconectado   Responder Citando
Antiguo 14-mar-2008, 03:30   #9 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.062
Re: Deshacer insert, update, delete?

Segestux de donde sacaste la cita en español?
seyko está desconectado   Responder Citando
Antiguo 14-mar-2008, 07:11   #10 (permalink)
Carxl está en el buen camino
 
Avatar de Carxl
 
Fecha de Ingreso: agosto-2006
Ubicación: Algún lugar en Colombia
Mensajes: 1.641
Enviar un mensaje por MSN a Carxl Enviar un mensaje por Skype™ a Carxl
De acuerdo Re: Deshacer insert, update, delete?

Sergestux, gracias por tu respuesta Intentarè leer un poco mas y cualquier les pregunto vale?

De acá seyko, en la parte que dice: "Descripción".

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
Por ahora sin blog...
Made in Colombia papá!
Carxl esta en línea ahora   Responder Citando
Antiguo 14-mar-2008, 07:44   #11 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.062
Re: Deshacer insert, update, delete?

uff eso me temia ya que casi no hay documentación en español.
Esa pagina habla de la versión 6.5... las cosas han cambiado mucho desde entonces!

Salu2
seyko está desconectado   Responder Citando
Antiguo 14-mar-2008, 11:10   #12 (permalink)
Carxl está en el buen camino
 
Avatar de Carxl
 
Fecha de Ingreso: agosto-2006
Ubicación: Algún lugar en Colombia
Mensajes: 1.641
Enviar un mensaje por MSN a Carxl Enviar un mensaje por Skype™ a Carxl
Re: Deshacer insert, update, delete?

Y eso que quiere decir seyko
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
Por ahora sin blog...
Made in Colombia papá!
Carxl esta en línea ahora   Responder Citando
Antiguo 14-mar-2008, 12:35   #13 (permalink)
Sergestux está en el buen camino
 
Avatar de Sergestux
 
Fecha de Ingreso: agosto-2007
Ubicación: Tijuas
Mensajes: 460
Enviar un mensaje por Yahoo  a Sergestux
Re: Deshacer insert, update, delete?

Pues aca (aunque en ingles) dice lo mismo y es sobre la version 8.3
Cita:
By default (without BEGIN), PostgreSQL executes transactions in "autocommit" mode, that is, each statement is executed in its own transaction and a commit is implicitly performed at the end of the statement (if execution was successful, otherwise a rollback is done).
Intento de traduccion:

Cita:
Por default (sin BEGIN), PostgreSQL ejecuta transacciones en modo "autocommit", esto es, cada sentencia es ejecutada en su propia transaccion y un commit es implicitamente ejecutado al final de la sentencia (si la ejecucion fue exitosa, de otro modo se hace un roll back).
__________________
You'll be free, hackers, you'll be free

Última edición por Sergestux; 14-mar-2008 a las 12:39. Razón: Agregue la traduccion
Sergestux está desconectado   Responder Citando
Antiguo 18-mar-2008, 05:41   #14 (permalink)
seyko ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.062
Re: Deshacer insert, update, delete?

Creo que no me hice entender, no queria decir que fuera incorrecto, solo que tengais en cuenta que esa traducción es de una version muy antigua y que las cosas han cambiado mucho.

Salu2
seyko está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 1,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 20:52.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93