【问题标题】:Why does the order of data in Postgres database change if one is changed? [duplicate]为什么Postgres数据库中的数据顺序改变了? [复制]
【发布时间】:2021-09-21 02:46:43
【问题描述】:

我有一个包含“工作”表的 postgres 数据库。在我的客户上,我正在映射这些工作并列出他们的头衔。当用户请求更新其中一项作业的属性并且我重新加载列表时,更改后的作业位于数组的末尾?发生了什么导致这种情况,有什么方法可以防止它们重新排序?

【问题讨论】:

  • 这个问题含糊不清,因为它不包含有关您正在使用的 SQL 的详细信息或信息、任何表的架构以及非常不清楚的问题描述。数据的顺序由 ORDER BY 子句控制。如果你得到错误的结果,你使用了错误的 ORDER BY,或者你根本没有使用,在这种情况下,数据库引擎可以按照它想要的任何顺序显示它们。
  • @wezrine,您过去曾问过几个问题,但没有接受任何答案。我强烈建议您接受您对所有已回答的问题的喜欢的回答。这将结束您的问题,并帮助其他寻找类似问题的人找到您的答案。

标签: postgresql rest


【解决方案1】:

您应该始终在查询中使用order by 子句以特定顺序列出作业。否则,无法保证每次查询时记录都会以相同的方式排序。

在您的应用程序中,更新您的查询,例如 select title, field2 from jobs where client = 10 order by job_id。然后,遍历作业。当他们更改作业时,假设他们更改了作业 id 4 of 10,使用 order by 子句重新查询他们的数据。这将一遍又一遍地给出相同的顺序。

【讨论】:

  • 好答案。我要补充一点,关系模型说行没有顺序,除非你指定一个,而不是 Postgres 特定的东西。
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2019-03-25
  • 2021-05-17
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
相关资源
最近更新 更多