我在PostgreSQL上有一个表,其中有1000行。我的表中有一个空列的整数列。我想用顺序的唯一数字填充newid
,有点像主键。
Product
-------------------------
id name newid size
60 .... null L
72 .... null M
83 .... null xl
84 .... null S
85 ...
如何编写更新newid
列的查询。
Product
-------------------------
id name newid size
60 .... 1 L
72 .... 2 M
83 .... 3 xl
84 .... 4 S
85 ...
答案 0 :(得分:4)
您可以使用JOIN
或子查询执行此操作。我们的想法是使用row_number()
计算新ID,然后将该值放入每一行:
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 :(得分:1)
怎么样:
update mytable set
newid = id + 1000000