我是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;
Run Code Online (Sandbox Code Playgroud)
从今起:
SELECT * FROM cities;
Run Code Online (Sandbox Code Playgroud)
在最后一个位置移动ID为1的更新行.
2, DEF
3, GHI
4, JKL
1, XYZ
Run Code Online (Sandbox Code Playgroud)
谢谢
行号已更改
关系表中没有"行号"这样的东西.
我想当一行更新时,不应该从它的位置移动它
因为一行没有"地方",所以没有"移动"它的东西.
把它们想象成一个篮子里的球.
如果没有ORDER BYDBMS,可以按照它认为合适的任何顺序自由返回行.
如果您需要以某种方式排序行,那么唯一(实际上:唯一的)方法就是使用ORDER BY语句.
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |