Postgres:更新列类型并将列值从 json 解析为浮点数

Postgres: update column type and parse column value from json to float

示例Table:

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

您可以指定一个 using 子句来定义转换:

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