首页 > 解决方案 > 如何修复 SQL 中的错误代码:1318?

问题描述

我创建了两个没有函数名的相同函数

 DELIMITER //
 CREATE FUNCTION fnc_credit_custstatus(custcredit INT)
 RETURNS VARCHAR(6) DETERMINISTIC
 BEGIN
 DECLARE custstatus VARCHAR(6);
 IF CustCredit>=1000 THEN SET custstatus='VIP';
 ELSEIF CustCredit<1000 THEN SET custstatus='NONVIP';
 END IF;
 RETURN (custstatus);
 END//
 DELIMITER ;

另一个是:

 DELIMITER //
 CREATE FUNCTION f(custcredit INT)
 RETURNS VARCHAR(6) DETERMINISTIC
 BEGIN
 DECLARE custstatus VARCHAR(6);
 IF CustCredit>=1000 THEN SET custstatus='VIP';
 ELSEIF CustCredit<1000 THEN SET custstatus='NONVIP';
 END IF;
 RETURN (custstatus);
 END//
 DELIMITER ;

这两个函数都存在,但是当我想选择不同名称的相同查询时,

  SELECT *,fnc_credit_custstatus(custcredit)AS custstatus FROM customer_salon; 


 SELECT *, f(custcredit) AS custstatus FROM customer_salon;

但是更长的名字不能用完

 Error Code: 1318
 Incorrect number of arguments for FUNCTION database.fnc_credit_custstatus; expected 0, got 1`

我不知道为什么

标签: mysqlsql

解决方案


推荐阅读