sql - 在表中的行之间插入数据
问题描述
我有一张大约有 1,000,000 条记录的表。我注意到,当我插入一条记录时,它最终没有被插入,而是被插入到两者之间
例子
我的桌子(测试)
矽。 | 姓名。 | 地址。 |
---|---|---|
1. | 测试。 | 1/2 测试 |
2. | 测试。 | 3/4测试 |
Si 创建了唯一索引但未定义主键
所以当我插入表格时
Insert into testing (si,name,address) Values (3., Test., 5/6 test)
我得到以下
矽。 | 姓名。 | 地址。 |
---|---|---|
1. | 测试。 | 1/2 测试 |
3. | 测试。 | 5/6测试 |
2. | 测试。 | 3/4测试 |
我该如何解决这个问题。
我所知道的是,该值通常会在最后插入,但仅此而已。
解决方案
你的“问题”根本不是问题。
这是我们正在谈论的关系数据库。把它想象成一个装满苹果的篮子。当你把一个新苹果放进去时,你怎么知道在这个之前插入的是哪一个呢?你不能。
向关系数据库表中的插入也是如此——可以在任何地方插入行。
如果要按特定顺序返回行,则必须使用该ORDER BY
子句。当然,还有一些东西可以用来对数据进行排序。在您的示例中,这就是si
列。
因此,而不是
select * from testing;
你
select * from testing order by si;
这就是它的工作原理;你无能为力。有时它看起来好像您可以省略order by
,但这是一种误导,您不能依赖它。始终使用ORDER BY
.
推荐阅读
- javascript - 从打字稿中的地图中删除数组值
- javascript - Reach/Router - 主要组件中经过身份验证的路由与受保护的路由
- python - 进行一步预测
- sql - 获取该人未关注的用户的所有用户 gd
- c# - 可以从主线程调用 统一处理服务器侦听器的事件时出错
- vue.js - 如何使用 bootstrap 和 scss 设置 nuxt 静态页面渲染
- ios - nativescript angular 应用程序在 ios 上使用 firebase 静默崩溃
- maven - 使用 mvn clean verify 执行时 exec-maven 插件错误
- debugging - 无法使用 blazor 进行调试(缺少文件://)
- python - 无法在我的 beta 计算器中更改雅虎价格数据的时间间隔