十年来,我们一直在我们的桌子上使用相同的自定义排序,我想知道是否有另一个涉及更少更新的解决方案,特别是从今天起我们想要复制/发布日期并且不会'我希望我们的复制可以复制不必要的条目。我查看了嵌套集,但它似乎没有为我们完成工作。
基准表:
id | a_sort
---+-------
1 10
2 20
3 30
插入后:
insert into table (a_sort) values(15)
第二个位置的条目。
id | a_sort
---+-------
1 10
2 20
3 30
4 15
用表格排序表:
select * from table order by a_sort
并使用所有a_sort条目,至少更新id =(2,3,4)
当然会产生所需的输出:
id | a_sort
---+-------
1 10
4 20
2 30
3 40
列名,列数,数据类型,可能的连接,可能的触发器或完成求助的方式与问题无关。我们也找到了一些非常简洁的方法来快速完成这项任务。< / p>
仅;我们如何能够将数据库中的更新减少到最多1或2个
似乎是一个非常普遍的问题。
船长在我看来很明显“使用a_sort float(53),使用固定值ordervaluefirstentry + abs(ordervaluefirstentry-ordervaluenextentry)/ 2”插入。
但是这只会允许大约1040个“介于两者之间”的条目 - 所以从不诉诸似乎有点问题;)
答案 0 :(得分:0)
你真的没有描述你对这些数据做了什么,所以请原谅我,如果这对你的情况是一个疯狂的想法:
您可以创建一种“链接列表”,而不是一列值,您有一个“下一个最高值”ID的列。这会将更新次数减少到最多2次。
您可以将其双重关联,并且还有一个下一个最低的列,这会将最大更新次数设置为3。