我在Postgres中有以下代码
select op.url from identity.legal_entity le
join identity.profile op on le.legal_entity_id =op.legal_entity_id
where op.global_id = '8wyvr9wkd7kpg1n0q4klhkc4g'
返回1行。
然后我尝试使用以下内容更新url字段:
update identity.profile
set url = 'htpp:sam'
where identity.profile.url in (
select op.url from identity.legal_entity le
join identity.profile op on le.legal_entity_id =op.legal_entity_id
where global_id = '8wyvr9wkd7kpg1n0q4klhkc4g'
);
但是上面的内容最终会更新超过1行,实际上是身份表的所有行。
我会假设,因为第一个postgres语句返回一行,最多只能更新一行,但是我得到了更新所有行的错误效果。为什么?请帮助nubie修复上述更新声明。
答案 0 :(得分:0)
不使用pip install wordcloud
标识要更新的行,而是使用主键。这就是它的用途。
因此,如果主键列名为profile.url
,则语句可以修改为:
id
但是你可以在PostgreSQL中使用
更简单地做到这一点UPDATE identity.profile
SET ...
WHERE identity.profile.id IN (SELECT op.id FROM ...);