Syntaxe des commandes SQL
<<<
Syntaxes de START TRANSACTION , COMMIT et ROLLBACK Commandes qui ne peuvent pas être annulées
>>>

14.4 Commandes relatives aux verrous et aux transactions
14 Syntaxe des commandes SQL
 Manuel de Référence MySQL 4.1 : Version Française

->Syntaxes de START TRANSACTION , COMMIT et ROLLBACK
Commandes qui ne peuvent pas être annulées
Commandes qui peuvent causer une validation implicite
Syntaxe de SAVEPOINT et ROLLBACK TO SAVEPOINT
Syntaxe de LOCK TABLES/UNLOCK TABLES
Syntaxe de SET TRANSACTION

14.4.1 Syntaxes de START TRANSACTION , COMMIT et ROLLBACK

Par défaut, MySQL est lancé en mode autocommit . Cela signifie que chaque modification effectué est enregistré immédiatement sur le disque par MySQL.

Si vous utilisez des tables supportant les transactions (comme InnoDB , BDB ), vous pouvez configurer MySQL en mode non- autocommit grâce à la commande:

SET AUTOCOMMIT=0
A partir de là, vous devez utiliser COMMIT pour enregistrer les modifications sur le disque ou ROLLBACK pour ignorer les modifications apportées depuis le début de la transaction.Si vous souhaitez sortir du mode AUTOCOMMIT pour une série d'opérations, vous pouvez utiliser les commandes BEGIN ou BEGIN WORK :

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
BEGIN et BEGIN WORK peuvent être utilisé à la place de START TRANSACTION pour initialiser une transaction. START TRANSACTION a été ajouté en MySQL 4.0.11; C'est une syntaxe SQL-99, et il est recommandé de l'utiliser pour lancer une transaction. BEGIN et BEGIN WORK sont disponibles pour MySQL 3.23.17 et 3.23.19, respectivement.Notez que si vous n'utilisez pas de table transactionnelles, les modifications seront validées automatiquement, indépendamment du mode de validation.

Si vous faites un ROLLBACK après avoir modifié une table non transactionnelle, vous obtiendrez ( ER_WARNING_NOT_COMPLETE_ROLLBACK ) comme message d'alerte. Toutes les tables supportant les transactions seront restaurées, mais aucune des autres tables ne changera.

Si vous utilisez START TRANSACTION ou SET AUTOCOMMIT=0 , il est recommandé d'utiliser les " binary log " de MySQL à la place des anciens logs de modifications pour les sauvegardes. Les transactions sont stockées dans les logs binaires en un seul bloc, après COMMIT , pour être sûr que les transactions qui ont été annulées ne soient pas enregistrées. Le log binaire des mises à jour .

Vous pouvez changer le niveau d'isolation des transactions avec SET TRANSACTION ISOLATION LEVEL ... . Syntaxe de SET TRANSACTION .

<< Syntaxes de START TRANSACTION , COMMIT et ROLLBACK >>
Syntaxe des commandes SQL Commandes relatives aux verrous et aux transactions Commandes qui ne peuvent pas être annulées