MySQL, 修改主键列

MySQL, modifying primary-key column

提问人:jjytjytj 提问时间:8/21/2020 更新时间:8/21/2020 访问量:55

问:


number(pk)   name
    1         A 
    2         B  
    4         C
    5         D 
    8         E
   10         F
   12         G
   15         H
   20         I

我想修改上面的表格,如下所示。


number(pk)  name
    1         A
    2         B
    3         C
    4         D
    5         E
    6         F
    7         G
    8         H
    9         I

为此,我在互联网上找到了以下代码

SET @CNT = 0;
UPDATE [table_name] SET [column_name] = @CNT:=@CNT+1;

这如我所愿,但出现以下警告。

警告:1287 在表达式中设置用户变量是 已弃用,并将在将来的版本中删除。考虑 alternatives: 'SET variable=expression, ...', 或 'SELECT expression(s) INTO 变量'。

你能告诉我其他更好的方法或避免警告的方法吗?

MySQL 排序 警告 主键

评论

5赞 RiggsFolly 8/21/2020
不要!!!简单甚至不考虑,有龙 反正这样做没有充分的理由
1赞 Akina 8/21/2020
主键必须保持不变。如果需要具有连续值的列,则在结构中再添加一列。

答:

1赞 manqlele 8/21/2020 #1

不建议,但如果你真的想这样做,你可以导出表,删除它并导入它,而不使用主键列,主键列会自动自动递增