MySQL v8.0.13警告1287在表达式中设置用户变量已被弃用,并将在以后的版本中删除

时间:2018-11-26 03:25:44

标签: mysql sql

在MySQL v8.0.13中执行以下查询会导致此错误:

影响0行,1警告:1287在表达式中设置用户变量已被弃用,在以后的版本中将被删除。请改为在单独的语句中设置变量。

SET @i = -1;

UPDATE `tb_test`
SET `order` = (@i := @i + 1)
ORDER BY `order` ASC;

关于如何在单独的语句中设置变量的任何建议?

1 个答案:

答案 0 :(得分:0)

这确实是黑暗中的镜头(从未使用过mySQL),但是检查the docs会显示:

“在MySQL 8.0.13中不支持在语句 SET 中设置用户变量。此功能在MySQL 9.0中可能会删除。”

(强调我的)。

所以问题可能出在您不使用SET的情况下增加了@i吗?您可以使用显式SET重写它,看看是否有帮助?