В чем причина ошибки при написании процедуры 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