這是 PostgreSQL 9.5 版以上才有的語法
詳細可參考這裡:http://www.postgresql.org/docs/9.5/static/functions-json.html

1. 首先我們先建立一個 Json 表格
CREATE TABLE json (data JSONB);

2. 插入 Json 資料
INSERT INTO json VALUES ('{"A":"B"}');

3. 查看我們剛剛的資料
SELECT * FROM json;

  data
------------
{"A": "B"}

4. 更新資料 (在舊 Json 中接續插入新的 Json) 
UPDATE json SET data = jsonb_set(data, '{X, Loli}', '"Love"');

5. 察看結果 (舊資料中出現新的Json資料了):
SELECT * FROM json;

              data
-----------------------------------
{"A": "B", "X": {"Loli": "Love"}}

6. 加入陣列
UPDATE json SET data = jsonb_set(data, '{X}', '[]');
SELECT * FROM json;

      data
---------------------
{"A": "B", "X": []}

7. 插入陣列新值:

UPDATE json SET data = jsonb_set(data, '{X, *}', '0');
UPDATE json SET data = jsonb_set(data, '{X, *}', '1');
UPDATE json SET data = jsonb_set(data, '{X, *}', '100');

SELECT * FROM json;

      data
---------------------
{"A": "B", "X": [0, 1, 100]}

8. 刪掉陣列中其中一個值:
UPDATE json SET data = data #- '{X, 2}';

      data
---------------------
{"A": "B", "X": [0, 1, 100]}













創作者介紹
創作者 黃彥霖 的頭像
黃彥霖

彥霖 實驗筆記

黃彥霖 發表在 痞客邦 留言(0) 人氣()