Stworzyłem prostą procedurę w MySQL która zawiera transakcję
DELIMITER $$
DROP PROCEDURE IF EXISTS `baza`.`select_article` $$
CREATE DEFINER=`przemek`@`localhost` PROCEDURE `select_article`()
BEGIN
START TRANSACTION;
DELETE FROM article WHERE article_id = 10;
INSERT INTO article(article_id, title, text, active) VALUES (1,'tytul','jakis text', 0);
COMMIT;
END $$
DELIMITER ;
Celowo próbuje wstawić artykuł o "article_id", który już istnieje. Według mnie przez pojawienie się błędu , że nie da się wstawić wiersza do tabeli "article" powinno spowodować cofnięcie transakcji i artykuł o "article_id" równym 10 powinien zostać w bazie. Dlaczego tak się nie dzieje??