我正在尝试使用另一个表引用列更新hstore键值。语法就像
一样简单SET misc = misc || ('domain' => temp.domain)
但我得到错误,因为括号内的所有内容都应引用:
SET misc = misc || ('domain=>temp.domain')::hstore
但实际上这会将temp.domain
作为字符串而不是其值插入。如何改为传递temp.domain
值?
答案 0 :(得分:1)
您可以将文本与子查询连接起来,并将结果转换为类型hstore。
create temp table temp (
temp_id integer primary key,
domain text
);
insert into temp values (1, 'wibble');
select ('domain => ' || (select domain from temp where temp_id = 1) )::hstore as key_value
from temp
key_value hstore -- "domain"=>"wibble"
更新可以以类似的方式工作。