我是Postgresql的新手,正在使用9.3版。我有一张桌子,里面有几行。我的问题是,当我更新一行时,该行号被更改并将其移动到表中的最后一个位置。我的问题是:这是否是默认行为,因为我认为在更新行时,不应将其从其位置移开?该操作似乎就像先删除然后再插入该行。
这是示例SQL:
CREATE TABLE cities ( city_id serial, city_name character varying(50), PRIMARY KEY (city_id) ); INSERT INTO cities (city_name) VALUES ('ABC'); INSERT INTO cities (city_name) VALUES ('DEF'); INSERT INTO cities (city_name) VALUES ('GHI'); INSERT INTO cities (city_name) VALUES ('JKL'); UPDATE cities SET city_name = 'XYZ' WHERE city_id = 1;
从今起:
SELECT * FROM cities;
将ID为1的更新后的行移动到最后一个位置。
2, DEF 3, GHI 4, JKL 1, XYZ
谢谢
行号已更改
关系表中没有“行号”之类的东西。
我认为当更新行时,不应将其从其位置移开
由于行中没有“位置”,因此也没有将其“移出”的东西。
可以将它们想像成篮子里的球。
如果没有ORDER BYDBMS,则可以按它认为可以的任何顺序自由返回行。
ORDER BY
如果您需要以某种方式对行进行排序,那么 唯一 (实际上是唯一)的方式就是使用一条ORDER BY语句。