3

(name : 'delete_catelog_item does')データベースにプロシージャを作成し、(name : db)そのプロシージャを実行しようとしましたが、このようなエラーが発生しました#1305 - PROCEDURE db.procedurename does not exist

マイクエリ

DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_catelog_item`(IN itemtocatid INT(11),IN shopinid INT(11),OUT out_put BOOL)
BEGIN
     DECLARE cont INT(11);
     DECLARE itemid INT(11) DEFAULT 0;
     SELECT a.ItmId INTO itemid FROM mas_shop_item_to_category as a INNER JOIN mas_shop_item as b ON (a.ItmID=b.ItmID AND b.IsDelete!=1 AND b.ShopID IN (SELECT ShopID FROM mas_shop WHERE ShopID=shopinid OR ParentID=shopinid)) WHERE a.ItmToCatID=itemtocatid AND a.IsDelete!=1;
     IF itemid!=0 THEN
             UPDATE  mas_shop_item_to_category SET `IsDelete` = '1' WHERE ItmToCatID=itemtocatid;
             SELECT count(ItmToCatID) INTO cont  FROM mas_shop_item_to_category WHERE ItmId=itemid AND IsDelete!=1;
             IF cont=0 THEN
                UPDATE mas_shop_item SET `IsDelete` = '1' WHERE ItmID=itemid;
             END IF;
             SET out_put=TRUE;
     ELSE
             SET out_put=FALSE;
     END IF;
END //
DELIMITER ;


Apache/2.2.14 (Ubuntu)
MySQL client version: 5.1.41
PHP extension: mysql

実際の理由はわかりませんが、データベースで手順を確認すると、そこにありました。問題を見つけるのを手伝ってください。

ありがとうございました。

4

2 に答える 2

0

問題はデータベース名にありました。名前を変更した後、問題はありませんでした".""first.second"私を助けてくれてありがとう。

于 2012-05-01T06:52:49.973 に答える
0

あなたが与えたエラーメッセージから、名前でCALLプロシージャを試行したように見えますが、ステートメントでは名前が付けられています。それが定義された名前でそれをする必要があります!procedurenameCREATE PROCEDUREdelete_catelog_itemCALL

于 2012-04-27T13:53:30.070 に答える