1

我用我的 PHPMyAdmin (XAMPP)创建了一个本地表。我可以用它做各种各样的事情,但我不能永久更改订单。

例如,在“操作”选项卡下,有“Alter Table Order By”功能。但那是行不通的。我可以选择一个字段,选择升序或降序,单击Go,系统甚至会报告查询已成功执行。但是当我随后浏览表格时,什么都没有改变。无论我选择哪个领域。

另一种方法也不起作用。只要通过命令,系统就会让我随心所欲地忙碌桌子

SELECT * FROM table_name ORDER BY field_name.

但是当我进入

ALTER TABLE table_name ORDER BY field_name

该表不会改变一个 iota,而我确实收到查询已成功执行的消息。

这怎么可能?

4

1 回答 1

2

如果您有一个带有主键或非空唯一索引键的 InnoDB 表,这将不起作用,因为 InnoDB 将始终按这些键排序。

这是直接来自 MySQL 手册 ALTER TABLE 页面(http://dev.mysql.com/doc/refman/5.5/en/alter-table.html)的文本:

ORDER BY 对于包含用户定义的聚集索引(PRIMARY KEY 或 NOT NULL UNIQUE 索引)的 InnoDB 表没有意义。如果存在这样的索引,InnoDB 总是根据这样的索引对表行进行排序。

于 2013-05-14T17:44:55.383 回答