W mariadb transakcje nie są rollbackowane na pierwszym błędzie, a chciałbym uzyskać taki efekt.
Obecnie wysyłam query w postaci
START TRANSACTION;
INSERT ..
UPDATE ..
COMMIT;
Znalazłem w internecie przykłady z wykorzystaniem procedur składowanych, jednak chciałbym się bez nich obejść.
Przykład procedury:
DELIMITER //
BEGIN
DECLARE `fail` bool default 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET `fail` = 1;
START TRANSACTION;
INSERT ..
UPDATE ..
W/E...
IF `fail` THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END//
DELIMITER;
Z tego co próbowałem te operacje nie są dostępne poza procedurami.
Czy jest to możliwe?
mariadb: 10.1.28
innodb: 5.6.36-82.2