我在Windows机器上使用MySQL innodb version 5.7.10 'MySQL Community Server (GPL)'。如果我从MySQL工作台运行它,下面的脚本运行得很好:
DROP PROCEDURE IF EXISTS procedure1;
DELIMITER //
CREATE PROCEDURE procedure1(IN pageSize BIGINT)
BEGIN
SELECT * FROM table1 LIMIT pageSize;
END //
DELIMITER ; -- note that there is an extra tab char here
DROP PROCEDURE IF EXISTS procedure2;
DELIMITER //
CREATE PROCEDURE procedure2()
BEGIN
SELECT * FROM table2;
END //
DELIMITER ;但是,如果将脚本复制到schema.sql并从Windows命令提示符运行它:
mysql> c:\release\ver1\schema.sql我得到以下错误:
您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以确定在“划界器//”附近使用的正确语法。
这个错误是因为制表符字符,如果我删除选项卡,它将运行良好。
我还尝试在Linux (MyQSL innodb version 5.7.25)上运行它,并得到了相同的错误:
mysql> source /home/ubuntu/release/ver1/schema.sql注意:我尝试用几个(\t)白空格字符替换选项卡 char ,并且空格很好.只有选项卡字符才能更改分隔符。
我在开发环境中使用MySQL工作台,但是对于测试和Prod环境,我只是使用来自Linux的MySQL .这个错误已经抓住了我很多次,因为通过了Dev环境的脚本在Test中失败了,而且每次我都必须记住返回并从脚本中删除选项卡。
是否存在修复此问题或将MySQL配置为忽略选项卡字符的问题?
https://stackoverflow.com/questions/58906719
复制相似问题