Я пытаюсь создать хранимую процедуру MySql с помощью оператора Prepare/Execute и получаю сообщение об ошибке. Я не понимаю, какой синтаксис я нарушаю.
SET @SourceDBName='dev';
SET @alterstatement=CONCAT('DELIMITER //
CREATE PROCEDURE ',@SourceDBName,'.execute_statement (alterstatement VARCHAR (767))
BEGIN
SELECT @alterstatement;
PREPARE executionstatement FROM @alterstatement;
EXECUTE executionstatement;
END //');
SELECT @alterstatement;
PREPARE executionstatement FROM @alterstatement;
EXECUTE executionstatement;
Я получаю общую синтаксическую ошибку:
09:43:20 PREPARE executionstatement FROM @alterstatement Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER // CREATE PROCEDURE dev.execute_statement (alterstatement VARC' at line 1 0.086 sec
Может кто-нибудь сказать мне, что я делаю неправильно? Я пробовал устранять неполадки, но пока не разобрался.
DELIMITER
— это команда официальной утилиты командной строки. Вы не можете использовать его в другом месте. - person Álvaro González   schedule 27.03.2017