有没有办法避免PostgreSQL将更新的行作为最后一行?

有没有办法避免PostgreSQL将更新的行作为最后一行?,postgresql,Postgresql,好吧,我的问题是每次我更新一行时,这一行都会转到表中的最后一个位置。以前放在哪里并不重要 我在这篇文章中读到,关系表中的行没有排序。那么,为什么在我执行select*fromtable时我总是得到相同的订单吗 无论如何,我不想就此展开讨论,只是想知道是否有办法不让update语句将行放在最后一位 编辑以获取更多信息: 我真的不想得到所有的结果。我已经用Java编程了两个按钮,next和previous,作为一个乞丐,我必须获得下一行或上一行的唯一方法是使用select*from table li

好吧,我的问题是每次我更新一行时,这一行都会转到表中的最后一个位置。以前放在哪里并不重要

我在这篇文章中读到,关系表中的行没有排序。那么,为什么在我执行
select*fromtable时我总是得到相同的订单吗

无论如何,我不想就此展开讨论,只是想知道是否有办法不让update语句将行放在最后一位

编辑以获取更多信息:

我真的不想得到所有的结果。我已经用Java编程了两个按钮,
next
previous
,作为一个乞丐,我必须获得下一行或上一行的唯一方法是使用
select*from table limit 1
并根据单击的按钮添加
offset num++
offset num--
。因此,当我执行更新时,我丢失了初始顺序(插入顺序)


谢谢。

您可以在表格中留出一些空间用于更新。将填充因子从默认的100%更改为更小,以便为更新创建空间

从(创建表)中:

填充因子(整数)

表的填充因子是百分比 在10到100之间。100(完整包装)是默认值。当 如果指定了较小的填充因子,请插入操作包表页 仅限于指定的百分比;每页上的剩余空间为 保留用于更新该页上的行。这使更新有机会 将行的更新副本与原始副本放在同一页上, 这比把它放在不同的页面上更有效。暂时 如果表格的条目从不更新,则最好是完整打包 选择,但在大量更新的表格中,填充因子较小 适当的无法为TOAST表设置此参数


但是如果查询中没有ORDER BY,则无法保证结果集将按照您期望的排序方式进行排序。没有填充因子可以改变这一点。

表中确实没有顺序。当然,你不会每次都得到随机顺序的结果,系统是确定性的,不会刻意地随机顺序。但是,如果您确实想要有序的结果,那么您需要明确地按照某种方式对它们进行排序;否则,顺序无法保证和/或未定义。“那么,为什么当我执行select*from表时,我总是得到相同的顺序呢?”-简单回答:你没有。@a_horse_和_no_name,重点是我有。@deceze我编辑了这篇文章,以获取更多信息,我认为这些信息可以帮助我们找到另一个解决方案。Sooo<代码>按id从表顺序中选择*限制1偏移量42
。。。!?