我是使用程序的新手,似乎无法使我的工作正常。我正在使用MySQL v5.1.36,并在WAMPP服务器上使用MySQL Console输入代码。如果我去(重新)创建程序。我收到错误#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
如果该程序存在于一个程序中,怎么可能不存在于另一程序中呢?我究竟做错了什么。
我相信问题是
CREATE FUNCTION语句在MySQL中也用于支持UDF(用户定义函数)。请参见第21.2节“向MySQL添加新功能”。UDF可以视为外部存储功能。存储的函数与UDF共享其名称空间。有关描述服务器如何解释对不同类型功能的引用的规则,请参见第8.2.3节“功能名称解析和解析”。 要调用存储过程,请使用CALL语句(请参见第12.2.1节“ ALL语法”)。要调用存储的函数,请在表达式中引用它。该函数在表达式求值期间返回一个值。
CREATE FUNCTION语句在MySQL中也用于支持UDF(用户定义函数)。请参见第21.2节“向MySQL添加新功能”。UDF可以视为外部存储功能。存储的函数与UDF共享其名称空间。有关描述服务器如何解释对不同类型功能的引用的规则,请参见第8.2.3节“功能名称解析和解析”。
要调用存储过程,请使用CALL语句(请参见第12.2.1节“ ALL语法”)。要调用存储的函数,请在表达式中引用它。该函数在表达式求值期间返回一个值。