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