The basic structure of my stored procedure is,
BEGIN      .. Declare statements ..      START TRANSACTION;          .. Query 1 ..         .. Query 2 ..         .. Query 3 ..      COMMIT;  END   MySQL version: 5.1.61-0ubuntu0.11.10.1-log
Currently, if 'query 2' fails, result of 'query 1' is committed.
Yes, a stored procedure can be run inside a transaction.
Stored routines cannot contain arbitrary SQL statements. The following statements are not permitted: The locking statements LOCK TABLES and UNLOCK TABLES . ALTER VIEW .
Take a look at http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html
Basically you declare error handler which will call rollback
START TRANSACTION;  DECLARE EXIT HANDLER FOR SQLEXCEPTION      BEGIN         ROLLBACK;         EXIT PROCEDURE;     END; COMMIT; 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With