我正在尝试使用从MS SQL Azure数据库创建的数据库转储填充新的MySQL空数据库,并且出现以下错误



我使用mysqldump执行此操作,并在命令提示符下使用类似于以下命令的命令:

mysql --user=rootusername --pasword=password databasename < dumpfilename.sql

Mysqldump花费了大约30分钟来显示此错误消息。

最佳答案

(对于那些来自搜索引擎的问题),请检查您的存储过程是否声明了自定义分隔符,因为当引擎无法确定如何终止语句时,您可能会看到此错误:



如果您有数据库转储,请参见:

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;

尝试使用自定义DELIMITER包装:
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 ;

09-25 22:21