我刚开始使用程序,似乎不能让我的程序正常工作。我正在使用WAMPP v5.1.36,并使用MySQL服务器上的MySQL控制台输入代码。如果我去(重新)创建这个过程。我得到错误#1304 (42000)。
mysql> DELIMITER //
mysql>
mysql> CREATE PROCEDURE modx.getCRID (IN x VARCHAR(255),OUT y INT)
-> BEGIN
-> DECLARE y INT;
-> SELECT id INTO y
-> FROM `modx`.coverage_region
-> WHERE `coverage_region`.name = x;
-> END//
ERROR 1304 (42000): PROCEDURE getCRID already exists
mysql>
mysql> DELIMITER ;
但是,如果我尝试使用该过程,则会得到错误#1305 (42000)。
mysql> USE modx;
Database changed
mysql> SET @crID = modx.getCRID("South East");
ERROR 1305 (42000): FUNCTION modx.getCRID does not exist
如果一个过程存在,怎么可能不存在于另一个呢?我做错了什么。
发布于 2010-08-04 10:44:50
我相信问题是
在MySQL中还可以使用CREATE FUNCTION语句来支持UDF(用户定义函数)。
请参阅第21.2节,“向MySQL添加新函数”。可以将UDF视为外部存储函数。存储函数与UDF共享其名称空间。有关描述服务器如何解释对不同类型函数的引用的规则,请参阅第8.2.3节“函数名称解析和解析”。
要调用存储过程,请使用CALL语句(请参阅第12.2.1节,“调用语法”)。要调用存储函数,请在表达式中引用它。此函数在表达式计算期间返回值。
https://stackoverflow.com/questions/3401982
复制相似问题