天上人间 发表于 2016-3-23 23:04:25

阿江 发表于 2016-3-23 14:37
replace into,好神奇的语句,用MSSQL表示没听说过。

哈哈哈,,还有 insert into ... ON DUPLICATE KEY UPDATE

漆黑风景 发表于 2016-3-24 08:43:20

为什么要弄成连续的?

漆黑风景 发表于 2016-3-24 08:45:10

不会是为了随机取数据吧 如果是这个 id不连续也行的效率更高

cms 发表于 2016-3-24 14:25:16

logo设计专家 发表于 2016-3-23 10:37
这个办法适合初始无数据的表

如果已经是百万数据了 而且也删除了几十万数据那种呢>

新建空白数据表,导入原有数据。

fashionwind 发表于 2016-3-24 23:13:45

打比方楼主百万数据,如果是按照id生成的页面,中间删除了几十万数据,楼主想新插入的数据不影响原来老数据的主键ID生成是吗?新数据占位原来的删除的id。

复制一张表,或者是保存原来的那张表数据,TRUNCATE TABLE一下(保留表的结构)

这里提出一个思路方案吧,可以帮你解决问题。

假设你的数据有100万条。中间删除了10万条(随机不确定)。

可以定一个for循环,让i自增到100万(可以保持跟主键一致),for循环里面的逻辑操作是:select 每条数据,然后插入到那个空表。如果自增到select到某条不存在id的数据时候(自增i),插入一条空数据(或者是你设定好的默认数据),然后把id记录下来存到数组里面(给一个特征状态,方便你后面查询)或者是一个临时表里面。

这样子最后就解决了一遍数据占位的问题。然后你以后每次更新数据的时候,只需要优先设定去给专门空id数据的行update就行了

页: 1 [2]
查看完整版本: mysql id自动增长 删除id自填充如何操作