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
ここで見落としている非常に明白な何かがあることを願っています。
お時間をいただきありがとうございました