(Đối với những người đến câu hỏi này từ công cụ tìm kiếm), hãy kiểm tra xem các thủ tục được lưu trữ của bạn có khai báo dấu phân cách tùy chỉnh hay không, vì đây là lỗi mà bạn có thể gặp khi công cụ không thể tìm ra cách kết thúc một câu lệnh:
Nếu bạn có một kết xuất cơ sở dữ liệu và xem:
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;
Thử gói bằng DELIMITER
tùy chỉnh :
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 ;