用Ruby转义Postgresql hstore类型?

时间:2018-06-28 16:23:32

标签: ruby postgresql hstore

我正在使用带有Rails(pg gem)的postgresql类型hstore。我需要在很多行中批量插入hstore值,所以我想制作SQL字符串。

但是我在pg gem中找不到hstore的报价方法(我认为应该有一种)。

我是否缺少某些东西,或者我应该自己编写这种报价方法?

1 个答案:

答案 0 :(得分:1)

我可能会使用hstore(text, text) and hstore(text[], text[]) functions而不是尝试构建字符串版本。结合使用array constructor语法,您将只处理字符串文字。例如,如果您的hstore是单个键和值,则:

insert into your_table (hstore_column)
values (hstore('key', 'value'))

将起作用,并在"key"=>"value"中给您hstore_column;如果您的hstore有多对,则:

insert into your_table (hstore_column)
values (hstore(array['key1', 'key2', 'key3'], array['value1, 'value2', 'value3']))

将在"key1"=>"value1","key2"=>"value2","key3"=>"value3"中给您hstore_column

我怀疑调用函数的开销与解析字符串版本的开销会大不相同。