这是一个我不明白的错误:
mysql> UPDATE gp
-> SET gp.gpid = gp.new_gpid
-> FROM (
-> SELECT gpid, ROW_NUMBER() OVER (ORDER BY [gpid]) AS new_gpid
-> FROM gp
-> ) gp;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM (
SELECT gpid, ROW_NUMBER() OVER (ORDER BY [gpid]) AS new_gpid
' at line 3
据我所知,嵌套SELECT在FROM语句中似乎已贬值。
我正在使用 mysql 8.0.21
任何帮助使这个查询工作将不胜感激。
谢谢
编辑 1:我想要实现的是用行号而不是实际AUTO_INCREMENTid 更新 gpid 列,其中包含 id 之间的间隙,这篇文章中的解释Change mysql auto increment id column value