非常に奇妙なバグが発生しています。Live Server (MySQL v. 5.5.12) では問題なく動作するストアド プロシージャがありますが、ローカル (v. 5.5.25a) ではエラーが発生します。ここにストアドプロシージャがあります
DELIMITER $$
DROP PROCEDURE IF EXISTS `SaveIDForTable`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SaveIDForTable`(IN OffID varchar(100),IN TabName VARCHAR(255))
DETERMINISTIC
BEGIN
set @sql='create table if not exists '||TabName||'(ID bigint(20) NOT NULL,exp date not null,PRIMARY KEY (ID))';
PREPARE statment FROM @sql;
EXECUTE statment;
DEALLOCATE PREPARE statment;
set @sql='insert ignore into '||TabName||' select ID,curdate() from all_data where Official_ID=\''||OffID||'\'';
PREPARE statment FROM @sql;
EXECUTE statment;
DEALLOCATE PREPARE statment;
END$$
しかし、ストアドプロシージャを実行すると
CALL SaveIDForTable ('203200702000000-207-5C2FF0','testTable')
エラーが発生します
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1
ローカル マシンで他のストアド プロシージャを実行してみましたが、正常に動作しますが、これは何らかの理由で動作しません。どんな助けでも大歓迎です。