postgres在rails中使用旧的部分值更新hstore的值

时间:2016-09-01 13:11:18

标签: ruby-on-rails postgresql hstore

我一直在尝试更新散列存储的错误迁移值

 "area_unit"=>NULL, "building_type"=>"{:building_type=>\"apartment\"}", 

 "area_unit"=>NULL, "building_type"=>"apartment"}", 

值应该保持不变,我不想使用正则表达式。有这么简单的方法吗?我和ruby一起工作。

1 个答案:

答案 0 :(得分:0)

我能够像下面这样做,而不是我想要的通用解决方案,但它有效。

SELECT id, properties::hstore ->'building_type' FROM stops WHERE (properties->'building_type' like '{:building_type=>\"apartment\"}');

UPDATE stops SET properties = properties || '"building_type"=>"apartment"'::hstore
WHERE (properties->'building_type' like '{:building_type=>\"apartment\"}');