社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

错误1146(42S02):表“mysql”。调用存储过程时,“proc”不存在

Payel Senapati • 3 年前 • 1606 次点击  

我在用这根线-

Rename a mysql procedure

重命名存储过程的步骤

在这里,尝试回答中所示的命令-

UPDATE `mysql`.`proc`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
  name = '<old_proc_name>';

我明白了-

ERROR 1146 (42S02): Table 'mysql.proc' doesn't exist while calling a stored procedure

关于其他关于 mysql.proc 不退出,无解决调用存储过程的特定问题。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131649
 
1606 次点击  
文章 [ 2 ]  |  最新文章 3 年前
danblack
Reply   •   1 楼
danblack    3 年前

建议避免摆弄 任何 mysql表直接访问。

使用 show create procedure old_proc_name

然后 create procedure new_proc_name ....

扔掉旧的 drop procedure old_proc_name

Barmar
Reply   •   2 楼
Barmar    3 年前

这个 mysql.proc 表在MySQL 8.0中被删除。看见 No more mysql.proc in MySQL 8.0

你可以用 information_schema.routines 获取有关存储过程的信息。但这是只读视图,无法更新。所以我认为再也没有简单的方法来重命名程序了。您可以使用动态SQL来使用此信息定义具有新名称的过程。

编辑:

不幸的是,仅在MySQL中无法实现上述功能,因为 CREATE PROCEDURE 无法使用 PREPARE 信息模式。日常工作 不包含重新创建过程所需的所有信息。你可以用一种外部语言通过执行 SHOW CREATE PROCEDURE 查询,然后替换名称以形成新查询。