1305: PROCEDURE does not exist(PROCEDURE 不存在)
MySQL含义
在指定数据库中找不到所调用的存储过程或函数。未定义此名称的例程。
原因
过程名拼写错误;过程位于错误的数据库中或从未创建;用 USE 选择了错误的 schema;没有调用该过程的 EXECUTE 权限;大小写敏感。
解决方法
确认过程是否存在以及位于哪个 schema:SHOW PROCEDURE STATUS WHERE Db = 'mydb'; 选择正确的数据库:USE mydb; 或使用完全限定名调用:CALL mydb.my_procedure(...); 授予所需权限:GRANT EXECUTE ON PROCEDURE mydb.my_procedure TO app_user;
同一数据库的其他条目
- 1051Unknown table 'x'(未知表 'x')
- 1091Can't DROP 'x'; check that column/key exists(无法 DROP 'x';请检查该列/键是否存在)
- 1093You can't specify target table 'x' for update in FROM clause(不能在 FROM 子句中指定要更新的目标表 'x')
- 1227Access denied; you need (at least one of) the PRIVILEGE(访问被拒绝;需要(至少一项)PRIVILEGE 权限)
- 3730Cannot drop table referenced by a foreign key constraint(无法删除被外键约束引用的表)
- 2013Lost connection to MySQL server during query(查询期间与 MySQL 服务器的连接丢失)
- 1153Got a packet bigger than 'max_allowed_packet' bytes(收到的数据包大于 'max_allowed_packet' 字节)