我正在使用 MySQL:5.1.69
我创建了存储过程并多次调用它们。在这种情况下,我似乎遇到了与架构名称中的转义字符相关的障碍。
我们的 MySQL 数据库/模式命名如下:www.company.com
因此,我们必须始终像这样转义数据库名称:`www.company.com`.table_name
我在 MySQLWorkbench 中创建了一个过程
CREATE PROCEDURE usp_backfill_data
(p_var1 INT(11)
,p_var2 DATETIME)
BEGIN
/*do lots of work here*/
END
在 MySQL Workbench 中,我可以使用以下方法调用该过程:
use `www.company.com`;
CALL usp_backfill_data(5000, '2012-01-01');
在这些条件下,程序完全按预期工作。
但是,当我尝试从命令行调用该过程时:
%> mysql -uuser -ppassword -Dwww.company.com -e "CALL usp_backfill_data(5000, '2012-01-01');"
或者当我尝试
%> mysql -uuser -ppassword -e "CALL \`www.company.com\`.usp_backfill_data(5000, '2012-01-01');"
或者当我登录 mysql 命令行并使用:
mysql> use `www.company.com`;
mysql> CALL usp_backfill_data(5000, '2012-01-01');
我总是收到以下错误:
ERROR 1305 (42000) at line 1: PROCEDURE www.company.com.usp_backfill_data does not exist
我希望我在这里忽略了一些非常明显的东西。
非常感谢您的宝贵时间