即使其主键ID号小于输入的较早行,如何使行保持其条目位置

Posted

技术标签:

【中文标题】即使其主键ID号小于输入的较早行,如何使行保持其条目位置【英文标题】:how to make a row maintain its position of entry even though its primary key id number is less than the earlier row entered 【发布时间】:2017-08-22 13:31:50 【问题描述】:

各位,我的主键 ID 是从我的 java 代码自动生成的。因此,要插入的新行的某些 id 号小于数据库中已插入的旧行。我的问题是:即使新行与旧行相比,新行的 id 编号更少,是否可以让数据库按照它们插入的顺序维护每一行? .我在 phpmyadmin 中使用 mysql。谢谢

【问题讨论】:

如果您将自动增强字段的任务留给数据库,而不是将其委托给应用程序层,事情会容易得多。 让数据库做它最擅长的事情。它没有弄乱你的代码,那你为什么要弄乱它的主键生成。 我同意前两个 cmets。我要补充一点,表中的顺序没有任何意义。如果您想对结果进行排序,请使用ORDER BY,不要相信行顺序。 【参考方案1】:

不知道有没有办法在mySql中创建非聚集主键。

但是在 MS Sql Server 中,有一种方法可以创建如下的非聚集主键

ALTER TABLE my_table DROP CONSTRAINT pk_my_table;

ALTER TABLE my_table 添加约束 pk_my_table 主键 非集群(id);

如果您不关心实际将您的 java 生成的 id 作为主键。

并且您希望保持行的自然顺序,创建一个单独的列(具有自动生成的序列)并使其成为主键。

【讨论】:

如果您的问题解决了,请采纳答案:-)

以上是关于即使其主键ID号小于输入的较早行,如何使行保持其条目位置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Hibernate 插入记录正确自动生成主键 ID

mysqli_num_rows() 期望参数通过同一页面上的较早查询有效

Xcode的多个副本-针对iOS的较早版本测试代码

使其主键+常量可以使用索引

[精选]分库分表之后,id 主键如何处理?如何保持全局唯一

向Mysql主键自增长表中添加数据并返回主键