代码之家  ›  专栏  ›  技术社区  ›  user2263572

Postgres:更新列类型并将列值从json解析为float

  •  0
  • user2263572  · 技术社区  · 5 年前

    示例表:

    CREATE TABLE example_table (
        example_column TEXT,
    )
    

    示例记录(json存储为文本):

    INSERT INTO example_table VALUES ('{"value": "1.3", "Type": "float"}')
    

    目标是:

    1. 将列类型更新为双精度
    2. 将该值更新为1.3

    我知道下面的内容接近我想要的,但我找不到正确的语法。

    ALTER TABLE example_table ALTER COLUMN example_column DOUBLE PRECISION...missing parse syntax
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   a_horse_with_no_name    5 年前

    您可以指定 using 定义转换的子句:

    alter table example_table
       alter example_column 
          type double precision using (example_column::jsonb ->> 'value')::double precision