Ver Mensaje Individual
  #16 (permalink)  
Antiguo 09/02/2010, 13:11
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Transacciones en BD MyIsam

Salome

Te voy a poner un ejemplo del concepto de transacciones en mysql, ya tu buscaras como implementarlas en el lenguaje.

Código MySQL:
Ver original
  1. mysql> select *from tabla1;
  2. +----------+---------+-----------------+
  3. | idextra1 | nombre1 | detalle1        |
  4. +----------+---------+-----------------+
  5. |        1 | daniel  | detalle daniel  |
  6. |        2 | daniela | detalle daniela |
  7. +----------+---------+-----------------+
  8. 2 rows in set (0.25 sec)
  9.  
  10. Query OK, 0 rows affected (0.00 sec)
  11.  
  12. mysql> insert into tabla1 values(3,'salome','detalle salome');
  13. Query OK, 1 row affected (0.00 sec)
  14.  
  15. mysql> insert into tabla1 values(4,'cristian','detalle cristian');
  16. Query OK, 1 row affected (0.00 sec)
  17.  
  18. mysql> select *from tabla1;
  19. +----------+----------+------------------+
  20. | idextra1 | nombre1  | detalle1         |
  21. +----------+----------+------------------+
  22. |        1 | daniel   | detalle daniel   |
  23. |        2 | daniela  | detalle daniela  |
  24. |        3 | salome   | detalle salome   |
  25. |        4 | cristian | detalle cristian |
  26. +----------+----------+------------------+
  27. 4 rows in set (0.00 sec)
  28.  
  29. mysql> rollback;
  30. Query OK, 0 rows affected (0.00 sec)
  31.  
  32. mysql> select *from tabla1;
  33. +----------+---------+-----------------+
  34. | idextra1 | nombre1 | detalle1        |
  35. +----------+---------+-----------------+
  36. |        1 | daniel  | detalle daniel  |
  37. |        2 | daniela | detalle daniela |
  38. +----------+---------+-----------------+
  39. 2 rows in set (0.00 sec)
  40.  
  41. Query OK, 0 rows affected (0.00 sec)
  42.  
  43. mysql> insert into tabla1 values(3,'salome','detalle salome');
  44. Query OK, 1 row affected (0.00 sec)
  45.  
  46. mysql> insert into tabla1 values(4,'cristian','detalle cristian');
  47. Query OK, 1 row affected (0.00 sec)
  48.  
  49. mysql> commit;
  50. Query OK, 0 rows affected (0.00 sec)
  51.  
  52. mysql> select *from tabla1;
  53. +----------+----------+------------------+
  54. | idextra1 | nombre1  | detalle1         |
  55. +----------+----------+------------------+
  56. |        1 | daniel   | detalle daniel   |
  57. |        2 | daniela  | detalle daniela  |
  58. |        3 | salome   | detalle salome   |
  59. |        4 | cristian | detalle cristian |
  60. +----------+----------+------------------+
  61. 4 rows in set (0.00 sec)
  62.  
  63. mysql>


Fijate que si dentro de una transacción se hace rollback, los cambios se deshacen y la tabla queda tal como estaba.

Pero si se hace commit los cambios se guardan en definitiva.

Estos comandos no se ejecutan por defecto. Por fuera de la transacción, mysql tiene un autocommit. Lo que quiere decir que después de hacer cambios en los datos , estos no se pueden recuperar de ninguna forma.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming