postgresql在引用单引号时使用列名值

时间:2014-12-11 17:00:37

标签: postgresql hstore

我正在尝试使用另一个表引用列更新hstore键值。语法就像

一样简单
SET misc = misc || ('domain' => temp.domain)

但我得到错误,因为括号内的所有内容都应引用:

SET misc = misc || ('domain=>temp.domain')::hstore

但实际上这会将temp.domain作为字符串而不是其值插入。如何改为传递temp.domain值?

1 个答案:

答案 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"

更新可以以类似的方式工作。