使用navicat创建函数会引发错误

时间:2016-01-08 11:15:49

标签: mysql navicat

我正在使用navicat创建一个sql函数,该函数从数据库中返回一个值,但它在屏幕截图中显示如下所示的错误enter image description here

我在这个问题上一整天都在苦苦挣扎。我的sql功能如下

BEGIN

UPDATE counter  SET  key_value = (key_value  + 1)  WHERE key_name = 'param_key_name' ;
SELECT   key_value into c_count FROM counter WHERE key_name = 'param_key_name'  ;

RETURN  c_count;
END;

MY QUERIES正在成功运行,但在功能内部使用时会显示如上所示的错误。

我的数据库安装在另一台机器上(但所有查询都是在我的机器上完成的),任何帮助都会非常明显。

请注意key_value and key_name是我的字段名称,我的参数是'param_key_name',这是varchar类型,我返回一个整数值,即c_count

1 个答案:

答案 0 :(得分:0)

内部有一个特殊的含义 - 例如 - 函数。尝试更改分隔符:

delimiter @
BEGIN

    UPDATE counter  SET  key_value = (key_value  + 1)  WHERE key_name = 'param_key_name' ;
    SELECT   key_value into c_count FROM counter WHERE key_name = 'param_key_name'  ;

    RETURN  c_count;
END @

请注意,这是来自命令行。在Navicat内部,你可能需要以另一种方式改变它。