我正在使用navicat创建一个sql函数,该函数从数据库中返回一个值,但它在屏幕截图中显示如下所示的错误
我在这个问题上一整天都在苦苦挣扎。我的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
答案 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内部,你可能需要以另一种方式改变它。