JSON
PostgreSQL
JSONB_SET
Mengganti atau menambah nilai pada path tertentu dalam JSON. Mengembalikan JSONB baru dengan nilai yang sudah diupdate.
Tipe hasil:
jsonbDiperbarui: 16 Mei 2026Syntax
SQL
JSONB_SET(target, path, new_value [, create_if_missing])Parameter
targetjsonbwajib
JSON data asli
pathtext[]wajib
Path ke nilai yang akan diubah
new_valuejsonbwajib
Nilai baru
create_if_missingbooleanopsional
Buat path jika tidak ada (default true)
Contoh Penggunaan
Update Nilai
SQL
1 SELECT JSONB_SET( 2 {"name": "John", "age": 30}::jsonb, 3 {age}, 4 31::jsonb 5 );
Mengubah nilai age dari 30 ke 31.
Hasil
| jsonb_set |
|---|
| {"name": "John", "age": 31} |
Update Nested Value
SQL
1 SELECT JSONB_SET( 2 {"user": {"name": "John", "address": {"city": "Jakarta"}}}::jsonb, 3 {user,address,city}, 4 "Surabaya"::jsonb 5 );
Mengubah nilai nested city.
Hasil
{"user": {"name": "John", "address": {"city": "Surabaya"}}}
Add New Key
SQL
1 UPDATE users 2 SET metadata = JSONB_SET( 3 COALESCE(metadata, {}::jsonb), 4 {last_login}, 5 TO_JSONB(NOW()) 6 ) 7 WHERE id = 1;
Menambahkan key baru ke JSON column.
Pertanyaan Umum tentang JSONB_SET
Apa itu fungsi JSONB_SET di PostgreSQL?
Mengganti atau menambah nilai pada path tertentu dalam JSON. Mengembalikan JSONB baru dengan nilai yang sudah diupdate. Di PostgreSQL, fungsi JSONB_SET termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan JSONB_SET di PostgreSQL?
Gunakan sintaks berikut: JSONB_SET(target, path, new_value [, create_if_missing]). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi JSONB_SET?
Fungsi JSONB_SET mengembalikan nilai bertipe jsonb. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi JSONB_SET?
Fungsi ini memiliki 3 parameter wajib dan 1 parameter opsional. Parameter yang digunakan: target (jsonb, wajib): JSON data asli; path (text[], wajib): Path ke nilai yang akan diubah; new_value (jsonb, wajib): Nilai baru; create_if_missing (boolean, opsional): Buat path jika tidak ada (default true).