MySQL中怎样使删除表中的一条记录后,剩余记录还是排序且自动增长的?

例如记录如下1 111112 222223 33333删除第二条记录后变成了1 111112 33333

楼主:
你这种想法本身就是错误,用数据库最大的关键就是数据库能做的事,轻易不要去改变它,
你想要的那种结果,有必要吗?一点都没有.如果想要顺序排列的序号有好多办法..limit就可以.
你想想,如果你插入数据的时候是往两个表中插入的,A表中的ID是主键,用来做B表的外键.用来关系AB两个表,如果照你那样做.A表的ID变了,B表怎么办?这仅仅是两个表,如果表多了又怎么办?难道你还得一个个去改?否则的话 关系就全乱了..
所以,用数据库切记两点----->:
1:数据库能做的是事情,轻易不用自己的方法去做,除非特殊情况,一般很少
2:轻易不要改变数据库自己生成的数据...
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-11
那就得用程序控制了。比如说把你的这个逻辑写在SP里,需要删除的时候调用SP。比如说你要删除ID是2的记录,首先delete from 表 where id=2。然后update 表 set id=id-1 where id>2。两步操作能够实现你要的效果。
第2个回答  2012-01-11
mysql表会有一个属性记录自增长数下一个是什么。你添加了一条记录自增长值为1后,表的这个属性值就会自动变为2,而删除1这条记录后,表的这个属性还是2,所以下一次添加数据,就还是2。

楼主的需求,可以考虑用程序来做自增长计算,先获取表中最大的,再加1。
楼主其实没必要让第二条记录的自增长是1,设了自增长后,表它生成是多少就多少。没什么影响的。
第3个回答  2012-01-11
你这个想法数据库本身无法为你做到,除非你自己在插入数据的时候自己找有没有中间缺少的那个值,如果有,插进去,没有的话最大值加1
第4个回答  2012-01-11
DROP关键字是删除 ORDER BY asc增长排序

MySQL中怎样使删除表中的一条记录后,剩余记录还是排序且自动增长的?
2:轻易不要改变数据库自己生成的数据...

SQL自增字段,有数据删除后,如何实现自增字段的连续
自动实现比较困难。你就不能自增长的值为序号。用存储过程来实现。

MySQL不去重排序如何在数据表中保留重复数据的排序信息mysql不去重排序...
这个查询将查找名称重复的订单,并按订单日期对它们进行排序。它返回一个结果集,其中每个记录包含订单名称和该名称下的一个字符串,其中包含排序后的订单编号。2.使用变量 在MySQL中,我们可以使用变量来保存数据表中的行号,并使用它来按顺序检索记录。这种方法需要使用用户定义的变量和ORDER BY子句来实现。

mysql如何删除内容mysql中怎么删除数据
MySQL中删除数据有两种方式,一种是DELETE语句,另一种是TRUNCATETABLE语句。DELETE语句可以通过WHERE选择要删除的记录。而使用TRUNCATETABLE将删除表中的所有记录。因此,DELETE语句更加灵活。如果要清除空表中的所有记录,可以使用以下两种方法:从表1中删除 截断表table1 第二条记录中的表是可选的。如果要...

在mysql数据库中,如何快速删除数据?
在MySQL中处理数据删除任务时,有三种主要方法:DELETE、TRUNCATE和DROP。每种方法都有其独特优势和应用场合,下面详细探讨这些方法。DELETE操作适用于删除满足特定条件的数据行。使用方法如下:DELETE语句仅标记数据为已删除状态,不实际释放磁盘空间。在删除数据后,执行optimize table table_name操作可立即释放...

MySQL中删除数据的方法有哪些?
在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。如果要清空表中的所有记录,可以使用下面的两种方法:DELETE FROM table1 TRUNCATE TABLE table1 其中第...

MySQL中num字段自增的实现方式和作用mysql中num自增
1.行记录唯一:自增字段可以为每一行记录分配唯一的ID,在进行行记录前新增、更新和删除操作时,可以帮助我们很快地定位到需要进行操作的行记录。2.提高查询效率:自增字段在我们对表中数据进行检索和排序时非常有用,因为数据库引擎能够很快地定位到需要查询的行记录。3.避免主键冲突:自增字段能够避免在...

mysql 自动增长的id删掉后怎么重新排序
可以通过将group_replication_autorejoin_tries设置为所需的重试次数来开启并使用自动重新加入功能。 SET GLOBAL group_replication_autorejoin_tries = 3 默认值为 0,表示服务器禁用自动重新加入。 如何验证自动重新加入? 与MySQL 中的许多功能一样,自动重新加入过程是可以监测的。自动重新加入的可检测性依赖于性能模...

MySQL 使用技巧
该参数保证当 customerinfo 表中的一条客户记录被删除的时候,salesinfo 表中所有与该客户相关的记录也会被自动删除。如果要在 MySQL 中使用外键,一定要记住在创建表的时候将表的类型定义为事务安全表 InnoDB类型。该类型不是 MySQL 表的默认类型。定义的方法是在 CREATE TABLE 语句中加上 TYPE=INNODB。如例中所示...

Mysql实现数据排序上移下移操作详解mysql上移下移
其中sort代表我们用于排序的字段,该语句的含义是将表中sort值等于id为1的记录前一位的记录的sort值减1,从而实现该记录的上移。同理,如果我们要将id为1的记录下移一位,可以使用以下语句:UPDATE table1 SET sort = sort + 1 WHERE sort = (SELECT sort + 1 FROM table1 WHERE id = 1);...

相似回答