小编典典

PostgreSQL:行号在更新时更改

sql

我是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

谢谢


阅读 334

收藏
2021-04-14

共1个答案

小编典典

行号已更改

关系表中没有“行号”之类的东西。

我认为当更新行时,不应将其从其位置移开

由于行中没有“位置”,因此也没有将其“移出”的东西。


关系表中的行 排序。

可以将它们想像成篮子里的球。

如果没有ORDER BYDBMS,则可以按它认为可以的任何顺序自由返回行。

如果您需要以某种方式对行进行排序,那么 唯一 (实际上是唯一)的方式就是使用一条ORDER BY语句。

2021-04-14