peut-on mettre un check
(un peu) To-validation et d'annulation dans les cas prévus
-
Vérifiez si les données sont commis à la base de données que lorsque l'opération est terminée avec succès.
-
Les données doivent être annulées en cas de transactions échouées.
tel que celui-
DELIMITER $$
CREATE PROCEDURE `sp_fail`()
BEGIN
DECLARE `_rollback` BOOL DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET `_rollback` = 1;
START TRANSACTION;
UPDATE customer SET age= 20 WHERE name='stark';
UPDATE customer SET age= 20 WHERE name='brian'; -- fail as there is no name as brian in the table customer
IF `_rollback` THEN
SELECT 'The transaction has failed' AS 'Result';
ROLLBACK;
ELSE
SELECT 'The transaction was successful' AS 'Result';
COMMIT;
END IF;
END$$
DELIMITER ;
sa mine version modifiée de l'une des réponses à stackoverflow itself.I Pensais d'utiliser ceci pour résoudre l'mentionnés ci-dessus points, mais quand je l'appelle procédure l'appel s'exécute avec succès mais aucune ligne n'est affectée.Pourquoi est-ce? Merci d'avance.
votre question est trop vague. S'il vous plaît ajouter des détails. Comme – Drew
[ce] (http://dev.mysql.com/doc/refman/5.7/en/commit.html) vous voulez dire? – PaulF