【问题标题】:Error occured while executing stored procedures执行存储过程时发生错误
【发布时间】:2026-01-14 15:15:01
【问题描述】:

我正在使用两台服务器。 一个是测试服务器,另一个是主服务器。 当我在测试服务器上执行存储过程时,它执行得很好。 但是当我在主服务器上执行相同的存储过程时,出现以下错误:

mysql.proc 的列数错误。预期 20,实际 16。使用 MySQL 50077 创建,现在运行 50158。请使用 mysql_upgrade 修复此错误。

我无法理解这个错误。

我的存储过程如下

CREATE PROCEDURE db_test.test(IN thedate1 varchar(100),IN thedate2 varchar(100),OUT greatdate varchar(100))
BEGIN
IF(thedate1 > thedate2)
THEN
SET greatdate = thedate1;
ELSE
SET greatdate = thedate2;
END IF;
END;

请帮忙.......

【问题讨论】:

  • 请使用mysql_upgrade修复此错误。
  • 认为它的服务器设置问题
  • 您可能已经编写了这个过程来学习它,但请注意,还有 GREATEST() 函数,它的作用相同。

标签: mysql stored-procedures


【解决方案1】:

使用

mysql_upgrade -u[user] -p [password]

之后别忘了重新启动。

这应该可以解决问题

【讨论】: