mysql1305报错密码不存在_关于sql:mysql程序错误1304和错误1305错误

我是使用程序的新手,似乎无法使我的工作正常。 我正在使用MySQL v5.1.36,并在WAMPP服务器上使用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

如果一个程序存在,那么另一程序不存在? 我究竟做错了什么。

我相信问题是

发生第一个错误是因为您试图重新创建现有过程。 如果您要先删除该过程,则不会出现此错误,

第二个错误是因为PROCEDURE是使用CALL语句调用的,而FUNCTION是作为函数引用调用的,就像在代码中一样。 您必须定义一个功能,而不是一个过程。 (MySQL文档)说:

The CREATE FUNCTION statement is also

used in MySQL to support UDFs

(user-defined functions). See Section

21.2,"Adding New Functions to MySQL". A UDF can be regarded as an external

stored function. Stored functions

share their namespace with UDFs. See

Section 8.2.3,"Function Name Parsing

and Resolution", for the rules

describing how the server interprets

references to different kinds of

functions.

To invoke a stored procedure, use the

CALL statement (see Section 12.2.1,

"CALL Syntax"). To invoke a stored

function, refer to it in an

expression. The function returns a

value during expression evaluation.

谢谢! 它是如此明显,但我无法克服,因为我坚信我正在像SQL Server一样执行SP。:-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值