I have this small script in my populate.sql which is supposed to roll back all inserts if any fails. However im not being able to execute populate.sql through "source populate.sql" cause it says i have a syntax error on my handler, but i've already check mysql 5.7 docs and everything seems all right. What am i doing wrong?
DELIMITER $$
CREATE PROCEDURE foo()
BEGIN
DECLARE rollbacka BOOL DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET rollbacka = 1;
START TRANSACTION;
insert into obra values('101-903aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','101-903.jpeg');
insert into obra values('101-904','101-904.jpeg');
insert into obra values('101-905','101-905.jpeg');
insert into obra values('101-906','101-906.jpeg');
insert into obra values('101-907','101-907.jpeg');
IF rollbacka THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END $$
DELIMITER ;
select * from museu.obra;
[update]Here's what im testing. It Shouldn't update table obras cause first attribute of the first insert is too big, so it will throw an exception, however when i comment it, the table remains empty, in that situation the other 4 inserts should work.