MySQL 5.1 [1305]函数不存在

标签 mysql mysql-5.1

我必须向本地 MySQL 添加一个函数,因为它是在远程服务器上定义的,用于测试目的。

但是当我添加像

这样的函数时
CREATE FUNCTION test(test VARCHAR(64))
RETURNS VARCHAR(64)
BEGIN
    return test;
END;

该函数已创建并在 ROUTINES 表中可见,但当我尝试使用它时

SELECT test();

我收到错误

[42000][1305] FUNCTION test does not exist

这在 MySQL 5.7 上工作得很好,但我似乎无法让它在 5.1 上工作

如有任何线索,我们将不胜感激。

最佳答案

我无法重现该问题:

mysql> SELECT VERSION();
+------------------+
| VERSION()        |
+------------------+
| 5.1.73-community |
+------------------+
1 row in set (0.00 sec)

mysql> DELIMITER $$

mysql> DROP FUNCTION IF EXISTS `test`$$
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE FUNCTION `test`(`test` VARCHAR(64))
    -> RETURNS VARCHAR(64)
    -> BEGIN
    ->   RETURN `test`;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;

mysql> SELECT `test`('MySQL');
+-----------------+
| `test`('MySQL') |
+-----------------+
| MySQL           |
+-----------------+
1 row in set (0.02 sec)

关于MySQL 5.1 [1305]函数不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44502782/

相关文章:

mysql - mysql 表列名中的减号会导致问题吗?

mysql - 如何使用 SQL 更改 mysql 服务器日期

javascript - 如何使用 jQuery 运行 MySQL 查询?

ios - 自动同步 iOS 应用程序 (Objective-C) 本地数据库与 MySQL 数据库

php - 多词 href 链接将单词放在 HTML/CSS 中?

mysql - 我如何在 MySQL 5.1 中将一个 int 转换为一个位?

mysql - 格式化 11/16/2002 12 :00:00 PM to date time stamp in MySQL

mysql - 一个表中的哪一行(按某列顺序)对应于另一个表中的一行?

mysql - 为什么我收到子查询错误