每次更新行时数据库行都会更改

时间:2020-05-01 15:05:29

标签: database postgresql flask

因此,我正在使用postgres类型的数据库,并且我有一个函数会由于某种原因而每次更新数据库中的行时,都会将其“推”到表的末尾,而不是停留在表的末尾。原来的位置。 这是我更新数据的示例(这是函数的一部分):

users.query.filter_by(username = user).update(dict(computer_id = assign_value, level=level))
db.session.commit()

但是由于某种原因,每当我看到users表时,我都可以看到我更新的任何值都被推到行的末尾

1 个答案:

答案 0 :(得分:0)

不存在对表的记录进行排序的事情。在内部,更新记录的过程是插入新版本,并在某个时候删除旧版本(如果事务完成,则不再需要旧版本,至少对于新事务而言)。从这个角度来看,即使将记录“移动”到表的末尾(即使该表没有任何开始或结束),从某种意义上来说也是如此。

如果您要进行某种排序,请考虑使用适当的ORDER BY(或框架用来执行此操作的任何函数或选项)查询数据。如果您查询数据并且未指定顺序,则检索到的记录可能以任何方式乱序。千万不要依赖诸如“如果我仅在此表中插入,则数据将始终以与插入时相同的顺序返回”之类的东西(尽管在某些情况下可能会如此)。

相关问题