replace into,好神奇的语句,用MSSQL表示没听说过。
哈哈哈,,还有 insert into ... ON DUPLICATE KEY UPDATE 为什么要弄成连续的? 不会是为了随机取数据吧 如果是这个 id不连续也行的效率更高 logo设计专家 发表于 2016-3-23 10:37
这个办法适合初始无数据的表
如果已经是百万数据了 而且也删除了几十万数据那种呢>
新建空白数据表,导入原有数据。 打比方楼主百万数据,如果是按照id生成的页面,中间删除了几十万数据,楼主想新插入的数据不影响原来老数据的主键ID生成是吗?新数据占位原来的删除的id。
复制一张表,或者是保存原来的那张表数据,TRUNCATE TABLE一下(保留表的结构)
这里提出一个思路方案吧,可以帮你解决问题。
假设你的数据有100万条。中间删除了10万条(随机不确定)。
可以定一个for循环,让i自增到100万(可以保持跟主键一致),for循环里面的逻辑操作是:select 每条数据,然后插入到那个空表。如果自增到select到某条不存在id的数据时候(自增i),插入一条空数据(或者是你设定好的默认数据),然后把id记录下来存到数组里面(给一个特征状态,方便你后面查询)或者是一个临时表里面。
这样子最后就解决了一遍数据占位的问题。然后你以后每次更新数据的时候,只需要优先设定去给专门空id数据的行update就行了
页:
1
[2]