ROLLBACK
Señala el final sin éxito de una transacción, elimina todas las modificaciones de datos realizadas desde el inicio de la transacción y también libera los recursos que retiene la transacción. Su sintaxis es la siguiente:
ROLLBACK [WORK] [TO SAVEPOINT nombrePuntoRestauración | FORCE 'texto'];
COMMIT
Una sentencia COMMIT marca el final de una transacción correcta, implícita o definida por el usuario. COMMIT hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, y además, libera los recursos mantenidos por la conexión. Su sintaxis es la siguiente:
COMMIT COMMENT 'mensaje' | FORCE 'texto']
RECOVERY (RESTORE)
Restaura la tabla o tablas de una copia de
seguridad que se hizo con
BACKUP TABLE.
Las tablas existentes no se sobreescriben; si trata restaurar una tabla
existente, obtiene un error. Pero como BACKUP TABLE,
RESTORE
TABLE actualmente funciona sólo para tablas MyISAM.
El directorio debe especificarse como una ruta completa.ROLLBACK
En MYSQL
mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB;
Query OK, 0 rows affected (0.10 sec)
mysql> INSERT INTO innotest VALUES(1);
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO innotest VALUES(2);
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO innotest VALUES(3);
Query OK, 1 row affected (0.04 sec)
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
3 rows in set (0.00 sec)
De
acuerdo, nada espectacular. Ahora veamos como usar transacciones.mysql> BEGIN;
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO innotest VALUES(4);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
| 4 |
+-------+
4 rows in set (0.00 sec)
Si en
este momento ejecutamos un ROLLBACK, la transacción no será completada, y los
cambios realizados sobre la tabla no tendrán efecto.mysql> ROLLBACK;
Query OK, 0 rows affected (0.06 sec)
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
En Oracle
Para
deshacer los
cambios realizados en una transacción.
Rollback restaura el estado de la base de datos para
el último punto de confirmación.
Ejemplo:
delete from emp;
rollback;
/* undo the changes */
COMMIT
En mysql
START TRANSACTION;
SELECT @A := presupuesto
FROM departamentos_externos
WHERE codigo =11;
INSERT INTO departamentos( codigo, nombre, presupuesto )
VALUES ( 11, ‘Department test’, @A );
COMMIT;
SELECT @A := presupuesto
FROM departamentos_externos
WHERE codigo =11;
INSERT INTO departamentos( codigo, nombre, presupuesto )
VALUES ( 11, ‘Department test’, @A );
COMMIT;
En Oracle
Para que los cambios realizados en un
número de transacción permanente
la sentencia COMMIT.
La sintaxis de la sentencia COMMIT es:
La sintaxis de la sentencia COMMIT es:
COMMIT [WORK] [COMMENT ‘your comment’];
RECOVERY (RESTORE)
En mysql
RESTORE
TABLE tbl_name [, tbl_name] ... FROM '/path/to/backup/directory'
En Oracle
RECOVER [AUTOMATIC] [FROM 'localizacion'] [BD]
[UNTIL CANCEL]
[UNTIL TIME fecha]
[UNTIL CHANGE entero]
[USING BACKUP CONTROLFILE]
BIBLIOGRAFIA
No hay comentarios:
Publicar un comentario