PostgresqlでJSONB列に変換するテキスト列があります。これはjsonb
にテキスト列を変換しましたpostgresql列のテキストをjsonbに完全に変換する方法
CREATE TABLE test (id serial, sec text, name text);
INSERT INTO test (id, sec, name) VALUES (1,'{"gender":"male","sections":{"a":1,"b":2}}','subject');
ALTER TABLE test ALTER COLUMN sec TYPE JSONB USING sec::JSONB;
:
私は何をしようとしたことはこれです。
私は照会しようとする場合は、:
SELECT sec->>'sections'->>'a' FROM test
私はエラーを取得します。
変換は1つのレベルでのみ行われます(例:sec - >> 'sections'はうまく動作します)。
クエリSELECT pg_typeof(name->>'sections') from test;
は私にテキストをテキストとして与えます。
私はSELECT sec->>'sections'->>'a' FROM test;
を正常に照会できるように、テキストをjsonbに完全に変換できる方法はありますか?
「a」の後にインデックスを作成する必要があるため、以下のようなクエリでテキストをjsonに変換したくないです。
select (sec->>'sections')::json->>'a' from test;