Rails,PostgreSQL和hstore

时间:2017-01-12 12:05:59

标签: ruby-on-rails postgresql hstore

如果我将这个哈希值{“1”=>“1”,“3”=>“3”,“2”=>“2”}添加到hstore列中,进入PostgreSql(9.4)(通过rails 5},此哈希将在hstore列下重新排序,如下所示:{“1”=>“1”,“2”=>“2”,“3”=>“3”}。有可能阻止这种情况吗?

1 个答案:

答案 0 :(得分:1)

Ruby中保证了哈希顺序。我认为,因为它离开了Ruby并进入数据库,你不再得到保证了。我认为postgres不会保留订单source

  

[hstore]对的顺序并不重要(可能无法在输出中重现)

如果你真的想要保留订单我认为你运气不好。如果您希望订单相同,那么您应该以已知的方式对Ruby哈希进行排序,然后以相同的方式对SQL进行排序。我相信有一种方法可以通过键对hstore列进行排序:Order by a value of an arbitrary attribute in hstore