根据主键在表上以正确的顺序插入行。

Posted

技术标签:

【中文标题】根据主键在表上以正确的顺序插入行。【英文标题】:Insert row in proper order on table based off of primary key. 【发布时间】:2011-07-30 12:59:35 【问题描述】:

我喜欢能够去 phpmyadmin 并查看我的行排序。 有没有一种简单的方法可以通过主键将行插入正确的顺序?

【问题讨论】:

点击列名 【参考方案1】:

没有可以依赖的顺序。

除非您指定 ORDER BY,否则无法保证哪些行 将首先返回。

但在实践中,顺序通常会匹配聚集索引 顺序,并且不会在调用之间变化。不要依赖这种行为。

Does mysql's LIMIT keyword guarantee order of returned data?

没有默认的排序顺序。即使表有一个聚集的 索引,您不能保证按该顺序获得结果。你 如果你想要一个特定的顺序,必须使用 order by 子句。

SQL best practice to deal with default sort order

只需插入数据;表格基本上没有排序。表结果的唯一排序发生在您自己在 select 语句中定义时。

Is it possible to insert data into the mid section of a table using the INSERT command?

你不能。没有这样的东西。

确切地说:在 MyISAM 引擎中,当前顺序是任意顺序 是执行最后一个 ALTER TABLE ORDER BY 时,由所有人修改 之后的删除和插入。

InnoDB 只是根据需要对表进行排序。

view current table order

但是请注意上面另一位海报的建议:顺序 哪些行在没有 ORDER BY 子句的情况下返回是任意的,并且 可能会更改,恕不另行通知。最好修改你的表 如果可能的话。

Reverse the “natural order” of a MySQL table without ORDER BY?

....还有更多。

【讨论】:

以上是关于根据主键在表上以正确的顺序插入行。的主要内容,如果未能解决你的问题,请参考以下文章

在使用 Entity Framework 数据库优先在表上插入行之前,如何从 PL/SQL 执行触发器?

如何在表上创建复合主键 [重复]

基于主键插入

使用复合主键在联结表上设置外键约束

如何在没有主键的表上按顺序更新表?

Oracle 按顺序连接行,其中每个表上的顺序定义不同