postgreSQL - 更新同一个表中的列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgreSQL - 更新同一个表中的列相关的知识,希望对你有一定的参考价值。
我有一张桌子
adr_id | adr_over | adr_debitor |
1 | NULL | 235567 |
2 | NULL | 235587 |
~
45678 | 1 | NULL
45679 | 2 | 0
~
现在我想更新列adr_debitor
adr_id | adr_over | adr_debitor
1 | NULL | 235567
2 | NULL | 235587
~
45678 | 1 | 235567
45679 | 2 | 235587
~
我尝试过:
UPDATE adresse
SET adr1.adr_debitor = adr2.adr_debitor
FROM adresse adr1
INNER JOIN adresse adr2
ON adr1.adr_over = adr2.adr_id
AND adr1.adr_over IS NOT NULL
但是存在语法错误。
答案
当我在我的身上做到这一点时,就是这样的
UPDATE adresse adr1
SET adr_debitor = adr2.adr_debitor
FROM adresse adr2
WHERE adr1.adr_over = adr2.adr_id
为我做SET adr1.adr_debitor = adr2.adr_debitor
gave错误,我没有必要在SET之后添加adr1.adr_debitor
另一答案
您不能在更新语句中使用inner join
。而且您还需要列出连接表,而不是from
子句中的目标表:
UPDATE adresse adr1
SET adr1.adr_debitor = adr2.adr_debitor
FROM adresse adr2
WHERE adr1.adr_over = adr2.adr_id
条件AND adr1.adr_over IS NOT NULL
不是必需的,因为条件adr1.adr_over = adr2.adr_id
只有在adr1.adr_over
不为空时才会为真。
以上是关于postgreSQL - 更新同一个表中的列的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 字符串数组设置为 PostgreSQL 表中的列