[英]how to Increment int value of column in multiple rows of a returned set by one?
[英]How to increment a column value by 1 for selected rows in postgres?
我有一個 postgres 表,其中包含列id
、 name
、 item
和counter
。現在我想將用戶所屬的行的counter
值增加1 。
我嘗試做這樣的事情,但出現語法錯誤
UPDATE Items set counter = counter + 1 WHERE users = 'Tony';
這應該將用戶Tony所屬的所有行的counter
值增加1。類似
最初的
id | name | item | counter
1 | Tony | car | 1
2 | Tony | bike | 1
3 | Ray | car | 1
4 | Ray | bike | 1
5 | Tony | cycle | 1
最終的
id | name | item | counter
1 | Tony | car | 2
2 | Tony | bike | 2
3 | Ray | car | 1
4 | Ray | bike | 1
5 | Tony | cycle | 2
但是我的查詢出現語法錯誤。我做錯了什么?
可能列名是錯誤的。 嘗試這個:
UPDATE Items set counter = counter + 1 WHERE name= 'Tony';
FOR rowdata1 IN
select employee_id, accrual_group_code, accrual_type, start_date,accru_date from z_123 where (doc_id =0 or doc_id is null ) order by accru_date
LOOP
employeeId = rowdata1.employee_id;
accrualgroupcode = rowdata1.accrual_group_code;
accrualtype = rowdata1.accrual_type;
accrudate = rowdata1.accru_date;
select (cast(date_trunc('month', accrudate::date) as date) - interval '1 month')::date into startdate;
update z_123 set company_id = 2 , doc_id= 2 where employee_id = employeeId
and accrual_group_code = accrualgroupcode and accrual_type = accrualtype and accru_date = accrudate;
END LOOP;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.