我对Postgres返回的行的默认排序有些困惑。
postgres=# select * from check_user;
id | name
----+------
1 | x
2 | y
3 | z
4 | a
5 | c1\
6 | c2
7 | c3
(7 rows)
postgres=# update check_user set name = 'c1' where name = 'c1\';
UPDATE 1
postgres=# select * from check_user;
id | name
----+------
1 | x
2 | y
3 | z
4 | a
6 | c2
7 | c3
5 | c1
(7 rows)
在进行任何更新之前,它返回的是按id排序的行,但在更新后,顺序已经改变。所以我的问题是,如果没有指定order by,postgress使用什么默认排序?
提前感谢。
ORDER BY
,就没有保证的顺序。这是毋庸置疑的。 - Lukasz Szozda