Generate sequence numbers on PostgreSQL integer column
我在PostgreSQL上有一个表,其中有1000行。 我的表中有一个空列的整数列。 我想用连续的唯一数字填充
1 2 3 4 5 6 7 8 | Product ------------------------- id name newid SIZE 60 .... NULL L 72 .... NULL M 83 .... NULL xl 84 .... NULL S 85 ... |
如何编写更新
1 2 3 4 5 6 7 8 | Product ------------------------- id name newid SIZE 60 .... 1 L 72 .... 2 M 83 .... 3 xl 84 .... 4 S 85 ... |
您可以使用
1 2 3 4 5 6 | WITH newvals ( SELECT p.*, ROW_NUMBER() OVER (ORDER BY id) AS seqnum FROM product p ) UPDATE product p SET newid = (SELECT seqnum FROM newvals nv WHERE nv.id = p.id); |
怎么样:
1 2 | UPDATE mytable SET newid = id + 1000000 |