在PostgreSQL 9.3+中将JSON转换为HSTORE?

最大

我已经阅读了文档,似乎没有可辨别的方式来执行将ALTER TABLE ... ALTER COLUMN ... USING语句直接将json类型列转换为类型语句hstore没有可用的功能(我知道)可以执行转换。

我拥有的下一个最佳选择是创建一个新的typehstore列,使用一些外部工具将JSON数据复制到该新列,删除旧json列,并将新hstore重命名为旧列的名称。

有没有更好的办法?

到目前为止,我有:

$ CREATE TABLE blah (unstructured_data JSON);

$ ALTER TABLE blah ALTER COLUMN unstructured_data 
       TYPE hstore USING CAST(unstructured_data AS hstore);
ERROR:   cannot cast type json to hstore
姿势

不幸的是,PostgreSQL在(f.ex.子查询是不允许的)USING子句中不允许所有类型的表达式ALTER TABLE ... SET DATA TYPE ...

但是,您可以编写函数来克服此问题,您只需要决定对高级类型(在对象的值中)进行处理,例如数组和对象。这是一个示例,将它们简单地转换为字符串:

CREATE OR REPLACE FUNCTION my_json_to_hstore(json)
  RETURNS hstore
  IMMUTABLE
  STRICT
  LANGUAGE sql
AS $func$
  SELECT hstore(array_agg(key), array_agg(value))
  FROM   json_each_text($1)
$func$;

之后,您可以在中使用它ALTER TABLE,例如:

ALTER TABLE blah
  ALTER COLUMN unstructured_data
  SET DATA TYPE hstore USING my_json_to_hstore(unstructured_data);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Postgresql中将记录数组转换为JSON

来自分类Dev

从sqlite3转换为postgresql

来自分类Dev

错误:无法在 Postgresql 中将类型整数转换为 json

来自分类Dev

如何在 Swift 3 Vapor 中将 JSON 转换为字典

来自分类Dev

在PostgreSQL中将分钟转换为小时

来自分类Dev

在PostgreSQL中将日期转换为整数

来自分类Dev

在PostgreSQL中将GMT转换为CST

来自分类Dev

在PostgreSQL查询中将Money转换为Double

来自分类Dev

在PostgreSQL中将分钟转换为小时

来自分类Dev

在 PostgreSQL 中将邻接表转换为 ltree

来自分类Dev

Rails3:Heroku将RoR sqlite转换为Postgresql

来自分类Dev

Talend在PostgreSQL中将JSON字符串转换为JSON或JSONB

来自分类Dev

Talend在PostgreSQL中将JSON字符串转换为JSON或JSONB

来自分类Dev

PostgreSQL阵列中的JSON / HSTORE

来自分类Dev

如何在PostgreSQL 9.4+中将简单的json(b)int数组转换为integer []

来自分类Dev

在Django中将Django-Hstore用于PostgreSQL HSTORE时出错

来自分类Dev

是否存在将PostgreSQL hstore转换为JPA 2.1 DataType的优雅且通用的方法?

来自分类Dev

使用PostgreSQL将XML转换为JSON

来自分类Dev

将numeric(9,2)转换为numeric(9,3)时出现算术溢出错误

来自分类Dev

如何使用Java将3 * 3矩阵转换为具有以下格式的9 * 3矩阵?

来自分类Dev

在PostgreSQL中将行转换为字符串

来自分类Dev

如何在PostgreSQL中将日期格式转换为毫秒?

来自分类Dev

是否可以在PostgreSQL中将枚举转换为文本

来自分类Dev

如何在PostgreSQL中将数字转换为月份名称?

来自分类Dev

如何在PostgreSQL中将列值转换为单行值

来自分类Dev

如何在PostgreSQL中将Hours转换为数值

来自分类Dev

在PostgreSQL中将字符串转换为日期和时间

来自分类Dev

是否可以在PostgreSQL中将枚举转换为文本

来自分类Dev

从sqlite转换为postgresql

Related 相关文章

  1. 1

    在Postgresql中将记录数组转换为JSON

  2. 2

    从sqlite3转换为postgresql

  3. 3

    错误:无法在 Postgresql 中将类型整数转换为 json

  4. 4

    如何在 Swift 3 Vapor 中将 JSON 转换为字典

  5. 5

    在PostgreSQL中将分钟转换为小时

  6. 6

    在PostgreSQL中将日期转换为整数

  7. 7

    在PostgreSQL中将GMT转换为CST

  8. 8

    在PostgreSQL查询中将Money转换为Double

  9. 9

    在PostgreSQL中将分钟转换为小时

  10. 10

    在 PostgreSQL 中将邻接表转换为 ltree

  11. 11

    Rails3:Heroku将RoR sqlite转换为Postgresql

  12. 12

    Talend在PostgreSQL中将JSON字符串转换为JSON或JSONB

  13. 13

    Talend在PostgreSQL中将JSON字符串转换为JSON或JSONB

  14. 14

    PostgreSQL阵列中的JSON / HSTORE

  15. 15

    如何在PostgreSQL 9.4+中将简单的json(b)int数组转换为integer []

  16. 16

    在Django中将Django-Hstore用于PostgreSQL HSTORE时出错

  17. 17

    是否存在将PostgreSQL hstore转换为JPA 2.1 DataType的优雅且通用的方法?

  18. 18

    使用PostgreSQL将XML转换为JSON

  19. 19

    将numeric(9,2)转换为numeric(9,3)时出现算术溢出错误

  20. 20

    如何使用Java将3 * 3矩阵转换为具有以下格式的9 * 3矩阵?

  21. 21

    在PostgreSQL中将行转换为字符串

  22. 22

    如何在PostgreSQL中将日期格式转换为毫秒?

  23. 23

    是否可以在PostgreSQL中将枚举转换为文本

  24. 24

    如何在PostgreSQL中将数字转换为月份名称?

  25. 25

    如何在PostgreSQL中将列值转换为单行值

  26. 26

    如何在PostgreSQL中将Hours转换为数值

  27. 27

    在PostgreSQL中将字符串转换为日期和时间

  28. 28

    是否可以在PostgreSQL中将枚举转换为文本

  29. 29

    从sqlite转换为postgresql

热门标签

归档