我需要按特定顺序插入数据行。有时我忘记按时插入行,我必须稍后插入。其他行已占据了它的位置,直到现在我手动(当然以编程方式)更改不同行数的索引 - 它可能是几行或几百行。这不是很有效,我正在寻找另一种方法。我的想法是按日期排序并创建一个“日期索引”号码来重新排序当天的记录,但我在徘徊......是否有任何mysql方法重新排序行?那是告诉mysql有关所需的行位置,然后让它更新主键?
答案 0 :(得分:1)
您认为实际上是解决方案。如果尚未创建Date列,然后在该字段上创建Index,也可以在Query中使用Order by。除了手动之外没有办法,即使不建议使用MYSQL存储行的方式,因为行存储是由DB引擎完成的,因为它们存储行最好最佳方式,所以为什么要把它们的效率弄得这么小。
答案 1 :(得分:1)
我认为你需要看看你的桌面设计。对于大多数应用程序来说,这实际上是一个非问题,因为它在开始时就已得到解决。
现在,您需要在表中添加一个DateTime列,并使用已经存在的数据的一些合理值对其进行初始化。添加新行时,将每个新行中的DateTime列设置为实际的DateTime。如果您必须延迟添加一行,请将DateTime设置为应添加的时间。
当您查询表格时,请使用ORDER BY myDateTime
(或您决定调用它的任何内容)。您的行应按正确顺序显示。
对于小型表(少于几千行),索引可能没有多大帮助。对于较大的表,您应该索引DateTime列。您必须运行一些测试才能看到最佳效果。