mysql - 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 |
+----+---------+
我希望将行连接到表,即表的行应该按插入顺序排列。任何人都可以建议我获取它的查询。谢谢您提前回答。
解决方案
MySQL 表中的记录通常没有内部顺序。唯一存在的顺序是您在查询时强加的顺序。您通常使用ORDER BY
子句强加该顺序。但这里有一个更大的设计问题。如果您想在插入时对记录进行排序,那么您应该在包含时间戳的表中添加一个专用列,或者使该id
列自动递增。
如果您想使用后一种选择,您可以这样做:
ALTER TABLE demo_table MODIFY COLUMN id INT auto_increment;
然后,像这样进行插入:
INSERT INTO demo_table (name) VALUES ('Michael');
数据库将为id
Michael 记录选择一个值,通常它会大于任何已经存在的id
值。如果您需要绝对控制,那么添加时间戳列可能更有意义。
推荐阅读
- excel - 如何创建允许使用 UserForm 在列中连续输入数据的数据条目
- nginx - 在 Azure 上处理 Kubernetes 集群的并发请求
- php - 如何将 2 个字符串插入数据库的 1 个列中?(代码点火器)
- sql - 如何从联合中选择一列
- android - 如何在 Android Studio 中构建 Android 包/应用程序。构建此应用程序的任何其他方式
- c++ - 通过 typedef 强制模板实例化:g++ 成功,Visual C++ 失败
- typescript - 如何在打字稿中使用 jest
- angular - 在 Angular HttpClient 中识别错误源(客户端或服务器)
- ios - iOS13 中的操作表 UI 问题,无法自定义消息和边框线
- javascript - 如何在角度服务类中初始化对象、数组和对象数组?