1305 - 程序 db.delete_catelog_item 不存在
Posted
技术标签:
【中文标题】1305 - 程序 db.delete_catelog_item 不存在【英文标题】:1305 - PROCEDURE db.delete_catelog_item does not exist 【发布时间】:2012-04-27 13:47:21 【问题描述】:我刚刚在数据库(name : db)
中创建了一个过程(name : 'delete_catelog_item does')
并尝试运行该过程。然后我收到类似#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
我无法弄清楚实际原因,但是当我检查数据库中的过程时,它就在那里。 请帮助查找问题。
谢谢。
【问题讨论】:
【参考方案1】:从您提供的错误消息来看,您似乎尝试使用名称 procedurename
对您的过程进行 CALL
,而您的 CREATE PROCEDURE
语句将其命名为 delete_catelog_item
。您需要使用定义它的名称CALL
!
【讨论】:
1305 - PROCEDURE db.delete_catelog_item 不存在,这是我得到的实际错误消息。我尝试使用我创建的相同名称调用过程。 @LucilSandaruwan:好的。也许您应该编辑您的问题以更正那里的消息?db
是您在其中创建过程的数据库的名称吗?
@LucilSandaruwan:但是delete_catelog_item
过程是在那个数据库中创建的吗?
Eggyal 我可以找到问题,感谢您的帮助【参考方案2】:
我可以找出解决方案,问题出在数据库名称上。在我更改该名称后,它以"."
命名,例如"first.second"
,问题不存在。谢谢你帮助我。
【讨论】:
以上是关于1305 - 程序 db.delete_catelog_item 不存在的主要内容,如果未能解决你的问题,请参考以下文章