我有两个表在Postgres db.
表
<表类> 用户数量 tbody><<tr>迈克 100 鲍勃200 爱丽丝50 表类>
首先,在表TableB
中为"group"
和"user"
列的组合添加一个唯一约束(如果不存在):
ALTER TABLE TableB ADD CONSTRAINT un_group_user UNIQUE("group", "user");
然后您可以使用INSERT
语句将用户从TableA
插入到TableB
,并使用ON CONFLICT
子句,这样TableB
中存在的'xyz'
组的用户行将被更新:
INSERT INTO TableB("group", "user", quantity)
SELECT 'xyz', "user", quantity / 2.0
FROM TableA
ON CONFLICT("group", "user") DO UPDATE SET
quantity = EXCLUDED.quantity;