В чем причина ошибки при написании процедуры MariaDB?

При написании процедуры средствами phpMyAdmin возникает следующая ошибка. Внутри процедуры планируется сделать транзакцию. Как только я добавляю транзакцию (даже самую простую, ради теста) - возникает ошибка.

Версия 10.4.16-MariaDB

START TRANSACTION;
    INSERT INTO `bank_account_transaction` (`bank_account_id`) VALUES (bank_card_sender_id)
    COMMIT WORK;
END;

Текст ошибки:

Данный запрос не был выполнен: "CREATE DEFINER=`root`@`localhost` PROCEDURE `transfer_money`(IN `bank_card_sender_id` INT, IN `bank_card_reciever_id` INT, IN `amount` INT) DETERMINISTIC NO SQL SQL SECURITY DEFINER BEGIN;
START TRANSACTION;
    INSERT INTO `bank_account_transaction` (`bank_account_id`) VALUES (bank_card_sender_id)
    COMMIT WORK;
END;"

Ответ MySQL: #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около ';
START TRANSACTION;
    INSERT INTO `bank_account_transaction` (`bank_acco...' на строке 1

Ответы (1 шт):

Автор решения: Shadowalker

Нужно добавить BEGIN и корректно проставить все делиметеры (в данном случае ;)

BEGIN
START TRANSACTION;
    INSERT INTO bank_account_transaction (transaction_id, bank_account_id) VALUES (2, bank_card_sender_id);
COMMIT WORK;
END
→ Ссылка