MySQL Error number: 3777; Symbol: ER_WARN_DEPRECATED_USER_SET_EXPR; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: 3777; Symbol: ER_WARN_DEPRECATED_USER_SET_EXPR; SQLSTATE: HY000
Message: Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: ‘SET variable=expression, …’, or ‘SELECT expression(s) INTO variables(s)’.
:
错误说明:
ER_WARN_DEPRECATED_USER_SET_EXPR错误表明开发者正在使用不推荐使用的用户变量表达式语句。截至MySQL 5.7.5,这种语句在新版本中被标记为不推荐使用,而替代品推荐使用set user.explicit_defaults_for_timestamp = 1;语句。
常见案例
用户可能会尝试使用与MySQL版本不兼容的sql语句,导致ER_WARN_DEPRECATED_USER_SET_EXPR错误发生。典型的场景是使用MySQL 5.7.5或更高版本时使用SELECT SET(@var1, @var2)语句。
解决方法:
如果该错误发生,可以尝试使用set user.explicit_defaults_for_timestamp = 1;语句进行替代,以避免该错误的发生。此外,如果开发者正在使用的sql语句在新版本中被标记为不推荐使用,最好替换为最新版本中替代的新语句,以避免出现未来的可能性错误。