Par défaut, chaque client qui se connecte à MySQL commence
avec le mode d'auto-validation activé, ce qui valide
automatiquement toutes les requêtes que vous soumettez. Pour
utiliser des requêtes mutli-commandes, vous pouvez désactiver
l'auto-validation avec la commande SET AUTOCOMMIT =
0
et utiliser les commandes COMMIT
et ROLLBACK
pour valider ou annuler vos
transactions. Si vous voulez laisser le mode d'auto-validation
tranquille, vous pouvez placer vos commandes entre
START TRANSACTION
et
COMMIT
ou ROLLBACK
. Avant
MySQL 4.0.11, vous deviez utiliser la commande
BEGIN
au lieu de START
TRANSACTION
. L'exemle suivant montre deux
transactions. La première est valideé, et la seconde est
annulée.
shell>mysql test
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 3.23.50-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A))
->TYPE=InnoDB;
Query OK, 0 rows affected (0.00 sec) mysql>BEGIN;
Query OK, 0 rows affected (0.00 sec) mysql>INSERT INTO CUSTOMER VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec) mysql>COMMIT;
Query OK, 0 rows affected (0.00 sec) mysql>SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec) mysql>INSERT INTO CUSTOMER VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec) mysql>ROLLBACK;
Query OK, 0 rows affected (0.00 sec) mysql>SELECT * FROM CUSTOMER;
+------+--------+ | A | B | +------+--------+ | 10 | Heikki | +------+--------+ 1 row in set (0.00 sec) mysql>
Avec des interfaces comme PHP, Perl DBI/DBD
,
JDBC
, ODBC ou l'interface C, vous pouvez
envoyer des commandes de contrôle de transaction comme
COMMIT
au serveur sous la forme de chaîne,
tout comme une autre commande SELECT
et
INSERT
. Certaines interfaces proposent des
fonctions spécifiques pour les validations et annulations de
transactions.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.