gpt4 book ai didi

postgresql - 添加基于排序列的序列列

转载 作者:行者123 更新时间:2023-11-29 12:45:16 28 4
gpt4 key购买 nike

我有一个表,其中一列的值是无序的。我想将此列降序排列并添加一列来记录其顺序。我的 SQL 代码是:

select *
into newtable
from oldtable
order by column_name desc;

alter table newtable add column id serial;

这会实现我的目标吗?我知道 PostgreSQL 中的行没有固定顺序。所以我不确定这一点。

最佳答案

与其通过 ALTER TABLE (ab) 使用 SERIAL,不如在插入时生成它。

CREATE TABLE newtable (id serial unique not null, LIKE oldtable INCLUDING ALL);

INSERT INTO newtable
SELECT nextval('newtable_id_seq'), *
FROM oldtable
ORDER BY column_name desc;

这避免了表重写,并且与您之前的方法不同,它保证产生正确的顺序。

(如果你想让它成为PK,而之前的表没有PK,把unique not null改成primary key。如果之前的表有PK您将需要使用排除 constraintsLIKE 变体)。

关于postgresql - 添加基于排序列的序列列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26607408/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com