首页 > 解决方案 > Mysql插入顺序

问题描述

我不知道它是否已经回答了。我没有得到任何答案。在 Mysql 表中,行将按主键的顺序排列。例如

+----+--------+
| 编号 | 姓名 |
+----+--------+
| 1 | 约翰 |
| 2 | 布莱恩 |
| 3 | 王子 |
| 5 | 丹尼 |
+----+--------+

如果我插入另一行insert into demo_table values(4,"Michael")。表格会像

+----+----------+
| 编号 | 姓名 |
+----+----------+
| 1 | 约翰 |
| 2 | 布莱恩 |
| 3 | 王子 |
| 4 | 迈克尔 |
| 5 | 丹尼 |
+----+----------+

但我需要桌子像

+----+---------+
| id | name    |
+----+---------+
|  1 | john    |
|  2 | Bryan   |
|  3 | Prince  |
|  5 | Danny   |
|  4 | Michael |
+----+---------+

我希望将行连接到表,即表的行应该按插入顺序排列。任何人都可以建议我获取它的查询。谢谢您提前回答。

标签: mysqldatabaserdbms

解决方案


MySQL 表中的记录通常没有内部顺序。唯一存在的顺序是您在查询时强加的顺序。您通常使用ORDER BY子句强加该顺序。但这里有一个更大的设计问题。如果您想在插入时对记录进行排序,那么您应该在包含时间戳的表中添加一个专用列,或者使该id列自动递增。

如果您想使用后一种选择,您可以这样做:

ALTER TABLE demo_table MODIFY COLUMN id INT auto_increment;

然后,像这样进行插入:

INSERT INTO demo_table (name) VALUES ('Michael');

数据库将为idMichael 记录选择一个值,通常它会大于任何已经存在的id值。如果您需要绝对控制,那么添加时间戳列可能更有意义。


推荐阅读