Как правильно откатить транзакцию
У меня есть транзакция, которая будет применена к 2 таблицам. Таблица 2 Поле
"образ"
это уникально. при попытке выполнить следующий код в первый раз он выполняется правильно, но при попытке повторно выполнить его снова (чтобы показать эффект отката) в таблице 2 произошла повторяющаяся ошибка, и транзакция была правильно применена к таблице 1 и зафиксирована, поэтому зафиксированная запись таблицы 1 не была откатана.
Что я уже пробовал:
Вот мой код:
DROP PROCEDURE IF EXISTS mprocedure; DELIMITER $$ CREATE PROCEDURE mprocedure () BEGIN START TRANSACTION; INSERT INTO `mschema`.`table1` (`maxbudget`, `blocked`, `d_percentage`, `max discount`) VALUES ('2250', '0', '.9', '.99'); if (@@error_count = 0 ) then INSERT INTO `mschema`.`table2` (`name`,`image`,`date`,`fKey_id`) values ('jhon','jfdd', '2018-01-01 00:00:00', LAST_INSERT_ID()); if (@@error_count = 0 ) then commit; else rollback; end if; else rollback; end if; commit; END; $$ DELIMITER ;