现在有个5kw的测试表,要将原来乱序的id列修改成递增数字,有好办法吗?
1 个赞
表 dumpling 备份出来 手动修改表结构为自增的,然后 lighting 导入 tidb。表相当于重建了。
手动无法清理掉id列数据啊
5000KW要是数据行不长
直接create 新表,id用自增,然后insert into select from 旧表
tidb_mem_quota_query 可以在session级别调整到10G应该够了
把ID删了就清理掉了啊
1 个赞
先删除ID列,然后添加ID列自增试试
是id列改成自增列,还是现有id列的值改成递增数字?
如果是聚簇表,id自增必须是主键列,主键列不允许修改
可以试试下面的方式:
-
在原表上删除id 列
-
dumpling导出整个表,因为id 列没有了,所有不含id 列数据
- 这里有个问题,目前不支持删除主键列或组合索引相关列。得要先删除索引,如果是聚簇索引也不支持删除。如果可以删除,继续下面的步骤。
- 如果不行的话,重建表和导入数据吧。
- 在导出的文件中修改scheme文件,给新的表添加自增id 列。注意这里要使用MySQL兼容模式,不然拿到的id 可能是唯一但不是严格递增的。
- 使用 MySQL 兼容模式后,能保证 ID 唯一 、单调递增
- https://docs.pingcap.com/zh/tidb/stable/auto-increment#mysql-兼容模式
- lightning导入数据
etl临时倒腾一下就行,5kw数据不多。
重建吧
重建吧
这个兼容模式是真的香~
1 个赞
这个可以
重建下吧
create建一个id自增的表,数据倒回来?5kw也不多
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。