(Bagi mereka yang menjawab pertanyaan ini dari mesin telusur), periksa apakah prosedur tersimpan Anda mendeklarasikan pembatas khusus, karena ini adalah kesalahan yang mungkin Anda lihat saat mesin tidak dapat menemukan cara menghentikan pernyataan:
Jika Anda memiliki dump database dan melihat:
DROP PROCEDURE IF EXISTS prc_test;
CREATE PROCEDURE prc_test( test varchar(50))
BEGIN
SET @sqlstr = CONCAT_WS(' ', 'CREATE DATABASE', test, 'CHARACTER SET utf8 COLLATE utf8_general_ci');
SELECT @sqlstr;
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
END;
Coba bungkus dengan DELIMITER
khusus :
DROP PROCEDURE IF EXISTS prc_test;
DELIMITER $$
CREATE PROCEDURE prc_test( test varchar(50))
BEGIN
SET @sqlstr = CONCAT_WS(' ', 'CREATE DATABASE', test, 'CHARACTER SET utf8 COLLATE utf8_general_ci');
SELECT @sqlstr;
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
END;
$$
DELIMITER ;