如何创建触发器“ORDER BY”

时间:2015-07-28 00:05:56

标签: sql phpmyadmin

我想按Jogadores的价格订购我的表Total,我可以通过写这个来实现:

ALTER TABLE  `Jogadores` ORDER BY  `Total` DESC ;

我的问题是,每次编辑Total值或插入新行时,如何将其用作触发器?

我正在使用phpMyAdmin

由于

3 个答案:

答案 0 :(得分:1)

我不确定我理解你要完成的任务。我将假设您希望在检索它时以这种方式对表进行排序。如果这是真的,您可以在检索时对其进行排序,而不是更改表格。

SELECT *
FROM Jogadores
ORDER BY Total DESC;

答案 1 :(得分:0)

  1. 为什么呢?这通常不是SQL数据库的工作方式

  2. 如果某些总数相同怎么办?排序它们的第二种方法是什么?

  3. 在操作数据库中存储总计通常也不是一个好主意。这是一个数据仓库吗?

  4. total上添加索引并创建按该列排序的视图可能会更容易。

答案 2 :(得分:0)

阅读新评论后,您想要的是不可行的。 See this answer

原始内容:

正如其他人所说,表中行的物理顺序无关紧要,因为在查询时总是可以排序。如果您正在考虑clustered indexes,那么您需要做的就是正确定义主键。

  

主键索引的InnoDB术语。 InnoDB表存储基于主键列的值进行组织,以加速涉及主键列的查询和排序。为获得最佳性能,请根据性能最关键的查询仔细选择主键列。因为修改聚簇索引的列是一项昂贵的操作,所以选择很少或从不更新的主列。

因此聚簇索引可以达到您想要的效果,但它可能不是您实际需要的。您知道,如果您处理的行数不到一百万(粗略估计),聚集索引的加速几乎为零。