首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不更改PostgreSQL中记录序号的情况下更新表中记录的值?

如何在不更改PostgreSQL中记录序号的情况下更新表中记录的值?
EN

Stack Overflow用户
提问于 2020-12-29 21:38:24
回答 1查看 28关注 0票数 0

例如,如果我更改了任何记录的值,它将再次更新,但随后会被推回到最后一个位置,就像删除和添加另一条记录一样。

EN

回答 1

Stack Overflow用户

发布于 2020-12-30 00:24:12

如果没有ORDER BY子句,将以对数据库引擎最方便的任何顺序返回行。

在一个简单的SELECT中,行通常会按照它们存储在磁盘上的顺序返回,如果表被更新、真空、集群或备份和恢复,这种顺序可以在任何时候改变,但是...

如果您选择的列允许数据库执行仅索引扫描,则将以与使用表扫描时不同的顺序返回行。

如果它决定执行索引扫描,它可能会按索引顺序返回行,但如果它执行位图索引扫描或序列扫描,它可能会在磁盘上按表顺序返回。

如果您的SELECT使用联接,那么它将首先扫描其中一个表,这将影响返回行的顺序。

如果它决定使用散列连接、合并连接或其他类型的连接,那么行顺序也会改变。

忘记表格是集合,而select结果也是集合,而集合是无序的,这是初学者常见的错误。如果您的代码依赖于无序对象的顺序,那么它将无法工作。

如果你想要一个特定的订单,那么你必须使用order BY。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65493063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档