I want to know if stored procedure in MySQL is something more than sequence of SQL statements with some restrictions (http://dev.mysql.com/doc/refman/5.7/en/stored-program-restrictions.html).
Is there something special with transactions, DML on InnoDB tables etc.?
As far as I know it isn't, because I failed to find out opposite.
Edit:
Execution flow is also an interesting question.
Assume I have simple following procedure and autocommit is off:
CREATE PROCEDURE someproc ()
-> BEGIN
-> -- exec stmt1
-> -- exec stmt2 <--- assume it fails!
-> -- exec stmt3
-> END//
What happens if stmt2 fails during execution for some reason?
In my opinion stmt2 changes will be rollbacked, but stmt1 changes are not and execution flow of procedure will be stopped so stmt3 won't be execute.