Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

SQL

Sentencias

ALTER TABLE ANALYZE TABLE BACKUP TABLE CHECK TABLE CHECKSUM TABLE CREATE DATABASE CREATE TABLE CREATE USER DELETE DESCRIBE DO DROP DATABASE DROP INDEX DROP TABLE DROP USER FLUSH GRANT HANDLER INSERT INSERT ... SELECT INSERT DELAYED JOIN KILL LOAD DATA LOCK TABLES OPTIMIZE TABLE RENAME TABLE REPAIR TABLE REPLACE RESET REVOKE SELECT SET SET TRANSACTION SHOW SHOW CHARACTER SET SHOW COLLATION SHOW COLUMNS SHOW CREATE DATABASE SHOW CREATE TABLE SHOW CREATE VIEW SHOW DATABASES SHOW ENGINES SHOW ERRORS SHOW GRANTS SHOW INDEX SHOW INNODB STATUS SHOW KEYS SHOW LOGS SHOW PRIVILEGES SHOW PROCESSLIST SHOW STATUS SHOW TABLE STATUS SHOW TABLES SHOW VARIABLES SHOW WARNINGS TRUNCATE UNION UNLOCK TABLES UPDATE USE

START TRANSACTION
COMMIT
ROLLBACK

Por defecto, MySQL se ejecuta en modo autocommit. Esto significa que tan pronto como se ejecuta una sentencia se actualiza (modifica) la tabla, MySQL almacenará la actualización en disco.

Si se están usando tablas de transacción segura (como InnoDB o BDB), se puede poner MySQL en modo no-autocommit con el comando siguiente:

SET AUTOCOMMIT=0

Después de desconectar el modo autocommit asignando cero a la variable AUTOCOMMIT, se debe usar COMMIT para almecenar los cambios en disco o ROLLBACK si se quieren ignorar los cambios hechos desde el principio de la transacción.

Si se quiere desactivar el modo autocommit para una serire de sentencias, se puede usar una sentencia START TRANSACTION:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;

Se puede usar BEGIN y BEGIN WORK en lugar de START TRANSACTION para iniciar una transacción. START TRANSACTION fue añadido en MySQL 4.0.11; es la sintaxis SQL-99 y es el modo recomendado para empezar una transacción. BEGIN y BEGIN WORK están disponibles desde MySQL 3.23.17 y 3.23.19, respectivamente.

Si no se están usando tablas de transacción segura, cualquier cambio será almacenado inmediatamente, independientemente del estado del modo autocommit.

Si se usa una sentencia ROLLBACK después de actualizar una tabla no transaccional, se obtendrá un error (ER_WARNING_NOT_COMPLETE_ROLLBACK) como un aviso. Todas las tablas de transacción segura serán restauradas, pero cualquier tabla de transacción no segura no cambiará.

Si se usar START TRANSACTION o SET AUTOCOMMIT=0, se debe usar el diario binario MySQL para copias de seguridad en lugar del antigui diario de actualización. Las transacciones se almacenan en el diario binario de una vez, después de COMMIT, para asegurar que las transacciones que se han rebobinado no se almacenen.

Se puede modificar el nivel de aislamiento para transacciones con SET TRANSACTION ISOLATION LEVEL.

(4.0)