如果我将这个哈希值{“1”=>“1”,“3”=>“3”,“2”=>“2”}添加到hstore列中,进入PostgreSql(9.4)(通过rails 5},此哈希将在hstore列下重新排序,如下所示:{“1”=>“1”,“2”=>“2”,“3”=>“3”}。有可能阻止这种情况吗?
答案 0 :(得分:1)
Ruby中保证了哈希顺序。我认为,因为它离开了Ruby并进入数据库,你不再得到保证了。我认为postgres不会保留订单source:
[hstore]对的顺序并不重要(可能无法在输出中重现)
如果你真的想要保留订单我认为你运气不好。如果您希望订单相同,那么您应该以已知的方式对Ruby哈希进行排序,然后以相同的方式对SQL进行排序。我相信有一种方法可以通过键对hstore列进行排序:Order by a value of an arbitrary attribute in hstore