Lorsque dans une transaction mysql innodb, je voudrais attendre une erreur de clé en double pour provoquer une annulation. Ce n'est pas le cas, mais il lance simplement une erreur et continue à la commande suivante. Une fois la commande COMMIT atteinte, la transaction sera validée, sans la commande de la clé dupliquée.erreur de clé en double ne pas annuler/restauration transaction mysql
Est-ce le comportement attendu? Si oui, comment procéder pour le configurer de façon à ce que la transaction soit annulée au lieu d'être validée lorsqu'une telle erreur se produit?
environnement de test:
CREATE TABLE `test` (
`id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
BEGIN;
INSERT INTO test VALUES (5);
INSERT INTO test VALUES (5);
COMMIT;
résultat escompté: table test
est vide
résultat réel: table test
contient un enregistrement avec une valeur 5
Voir aussi: http://dev.mysql.com/doc/refman/5.0/en/innodb-error-handling. html –