通過查看Postgres 9.4數據類型JSONB的文檔,我不明白如何在JSONB列上執行更新。如何在Postgres中對JSONB類型的列執行更新操作9.4
的文檔JSONB類型和功能:
http://www.postgresql.org/docs/9.4/static/functions-json.html http://www.postgresql.org/docs/9.4/static/datatype-json.html
作爲一個例子,我有這樣的基本表結構:
CREATE TABLE test(id serial, data jsonb);
插入是容易的,因爲在:
INSERT INTO test(data) values ('{"name": "my-name", "tags": ["tag1", "tag2"]}');
現在,我將如何更新'數據'列?這是無效的語法:
UPDATE test SET data->'name' = 'my-other-name' WHERE id = 1;
這是記錄在某處明顯,我錯過了?謝謝。
此答案只關注JSON類型並忽略JSONB。 – fiatjaf 2015-07-15 14:09:37
@fiatjaf:這個答案完全適用於'json'和'jsonb'數據類型。兩者都存儲JSON數據,'jsonb'以規範化的二進制形式存在,具有一些優點(並且缺點很少)。 http://stackoverflow.com/a/10560761/939860兩種數據類型都不適合在數據庫中操作*。 ***沒有***文件類型是。那麼,對於小型的,幾乎沒有結構化的JSON文檔來說很好。但是,大的嵌套文件將是一個愚蠢的方式。 – 2015-07-15 14:26:56
這就爲我澄清了答案。謝謝。 – fiatjaf 2015-07-15 14:50:00