我不确定这是否可能,但我正试图深入了解我在 postgres 9.6.1 中可以做什么,这似乎是可能的。所以给定这张表:
DROP TABLE IF EXISTS live_data;
CREATE TABLE live_data (
rec_id TEXT,
control_data JSONB
);
CREATE UNIQUE INDEX rec_id_idx ON live_data (rec_id);
我希望能够在 control_data json 上插入单个道具,而不必插入一个全新的 json 字符串。
该表中没有行但我尝试了这个:
INSERT INTO live_data(rec_id, control_data) VALUES ('1', '{"set":{"some_prop": 99}}')
ON CONFLICT (rec_id) DO UPDATE SET control_data->'set'->'some_prop' = 99;
FWIW 我在该查询中收到此错误:
syntax error at or near "->"
我是否写错了该查询和/或我想做的只是目前不可能?