添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1.在MySQL中创建了一个简单的查询存储过程:

mysql> CREATE PROCEDURE spl() SELECT VERSION();
Query OK, 0 rows affected (0.01 sec)

2.然后用CALL调用此存储过程,报错 ERROR 1305 (42000): PROCEDURE test.sp1 does not exist:

mysql> CALL sp1;
ERROR 1305 (42000): PROCEDURE test.sp1 does not exist

问题排查:

1.首先考虑是否是此储存过程当真不在,查看当前存储过程,发现存储过程存在:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | root@localhost | 2019-02-28 13:00:02 | 2019-02-28 13:00:02 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)

2.此时想到是用户没有当前存储过程的调用权限,赋予存储过程权限给当前用户,此时又出现了一个错误:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
ERROR 1133 (42000): Can't find any matching row in the user table

通过查询资料发现,需要先将当前的存储过程刷新,再执行授权语句:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL  PRIVILEGES ON test.*  TO 'root'@localhost;
Query OK, 0 rows affected (0.00 sec)

3.再执行调用此存储过程,显示成功调用:

mysql> SHOW PROCEDURE STATUS;
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db   | Name | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| test | spl  | PROCEDURE | root@localhost | 2019-02-28 13:11:23 | 2019-02-28 13:11:23 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
+------+------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.01 sec)
mysql> CALL spl;
+-----------+
| VERSION() |
+-----------+
| 5.5.40    |
+-----------+
1 row in set (0.00 sec)
这是我制作“第三范式”数据库的第一个真正的突破.我成功地创建了DDL脚本(在继续构建脚本之前,我已将逻辑模型验证为3NF),但是我不确定要解决的错误很多.对于这个特殊的案例,我可能会忍受不住咀嚼,但我不想放弃-这对我来说是一个很大的学习曲线,在我的帮助下,我可以超越它继续前进.首先,这是我的DDL脚本:-- This sql script creates the structure.-- of t... 用 mysql dump 备份数据库,然后恢复的时候报错如下: ERROR 1305(42000)atline9089:FUNCTION538329e1768cd.Fn_ParentsList_Selectdoesnot exist 经过查找,发现是 mysql dump 不加任何参数的情况下是不会导出存储 过程 与函数,如果需要导出函数与存储 过程 需要加一个 -R这样导出的sql 文件里面才包括存... 1.1、 查看是否存在存储 过程 ,如果存在存储 过程 执行1.2,不存在的话重新执行一遍创建存储 过程 的命令。 命令:show procedure status; 1.2、 添加前缀 把1.1中的Db列数据加到存储名前 写成 mysql .存储名,再次执行call命令。如继续报错,执行1.3。 1.3、 查看当前用户权限 show grants for 用户名; 问题描述:1.在 MySQL 中创建了一个简单的查询存储 过程 mysql > CREATE PROCEDURE sp l() SELECT VERSION();Query OK, 0 rows affected (0.01 sec)2.然后用CALL 调用 此存储 过程 ,报错 ERROR 1305 (42000): PROCEDURE test . sp 1 does not exist mysql > C... 我是使用程序的新手,似乎无法使我的工作正常。 我正在使用 MySQL v5.1.36,并在WAMPP服务器上使用 MySQL 控制台输入代码。 如果我去(重新)创建程序。 我收到错误#1304(42000)。 mysql > DELIMITER // mysql > mysql > CREATE PROCEDURE modx.getCRID (IN x VARCHAR(255),OUT y I... 我遇到问题。我在 MySQL 中创建了一个返回String(varchar数据类型)的函数。错误代码:1305 MySQL ,函数不存在这里的语法:DELIMITER $$USE `inv_sbmanis`$$DROP FUNCTION IF EXIST S `SafetyStockChecker`$$CREATE DEFINER=`root`@`localhost` FUNCTION `SafetySt... 1. ERROR 1305 (42000) at line 9468 in file: '/tmp/tables/tables.sql': FUNCTION dchstatnew.RECOVERY does not exist 问题描述: 这个问题是我从一个服务器将数据同步到另外一个数据库的时候遇到的。我当时使用的导出语句是: mysql dump -uroot -pxxxx --databases... mysql > drop function GetEmployeeInformationByID; ERROR 1305 (42000): FUNCTION (UDF) GetEmployeeInformationByID does not exist mysql > DELETE FROM mysql .func WHERE name='GetEmployeeInformationByID';... 函数 dataname.function(本例中为 test .average)不存在, 大部分情况为函数拼写错误, MySQL 数据库中没有function(本例中为average)这个函数 修改为正确函数即可。 转载于:https://www.cnblogs.com/hzauqian/p/6610259.html...