祝大家今天愉快。因此,我在excel中有很多数据需要插入到db中,但我没有注意到我插入了一个重复的值(因为hr没有对其进行排序)。
所以不管怎么说,这就是交易
[id][name]
[1][name1]
[2][name2] // I want to delete this row
[3][name3]
[4][name4]我想删除第2行。我想让id自动调整,
[id][name]
[1][name1]
[2][name3] // The id will adjust
[3][name4]这是可能的吗?或者如果没有,我能做些什么吗?
PS:我的数据已经是50k,我想删除7k中的行
发布于 2019-06-27 07:51:37
通常,您应该避免手动干预自动增量列。这意味着,除其他外,当您将数据插入到表中时,应该省略自动增量列,从而允许MySQL自动为其赋值。
也许这里最好的解决方案是有第三个时间戳列,它记录每条记录的插入时间。然后,您可以使用ROW_NUMBER生成您想要的序列。
SELECT
ROW_NUMBER() OVER (ORDER BY ts_column) id,
name
FROM yourTable
ORDER BY
id;您也可以使用ROW_NUMBER列对id进行排序,并获得相同的结果。如果您使用的MySQL版本早于8+,则可以使用用户变量模拟ROW_NUMBER。
https://stackoverflow.com/questions/56786307
复制相似问题