如何解决基于postgres中的主键更新具有多个值的多行列
我有一个名为test的表,该表有多行,其中有三列:id,数据,内容
我有一个ID列表以及该键的相应数据。像这样:
list = [(1,"a"),(2,"b"),(10,"c")]
现在,我只想更新ID为1、2、10的数据行中分别具有值“ a”,“ b”和“ c”的行。那就是我想用ID为1,2和10的值“ a”,“ b”和“ c”更新列数据。
我尝试了不同的方法,但都失败了。
我不想在更新逻辑中使用“ case when”,因为会有很多多行(这里举个例子,我只花了3行来更新数据,但实际上这要比那个。
解决方法
使用update from
尝试以下操作:
update test_table set data = temp_table.data
from (values
(1,'a'),(2,'b'),(10,'c')
) as temp_table(id,data)
where temp_table.id = test_table.id;
演示-SQL Fiddle
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。