postgresql 如何通过表中的记录更新表

h5qlskok  于 2022-11-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(144)

我在PostgerSQL中有一个表,我需要在表中创建N个条目两次,对于前半部分,我需要在partner_id字段中填充值1,而对于后半部分,我需要在partner_id字段中填充值2。
我试着

update USERS_TABLE set user_rule_id = 1;
update USERS_TABLE set user_rule_id = 2 where USERS_TABLE.id > count(*)/2;

`

lpwwtiir

lpwwtiir1#

我很大程度上取决于用户数量的准确性,必须更新为1或2。
下面的代码是非常不精确的,因为它没有采用已经存在的用户的确切数量8在删除了一些行之后,这些数字就不再适合了。

SELECT * FROM USERS_TABLE

| 标识符|用户规则标识|
| - -|- -|
| 一个|一个|
| 2个|一个|
| 三个|2个|
| 四个|2个|
| 五个|2个|

SELECT 5

如果您有许多已删除的行,但仍希望保留一半的用户,则可以选择以下方法,该方法确实依赖于id,但取决于实际的行号
第一个
| 标识符|用户规则标识|
| - -|- -|
| 一个|一个|
| 2个|一个|
| 三个|2个|
| 四个|2个|
| 五个|2个|

SELECT 5

fiddle
在示例中,它的结果是相同的,但是当您有很多行和一堆已删除的用户时,senind会给您一个相当好的结果

相关问题