JSON

JSONB_SET

PostgreSQLPostgreSQL

Mengganti atau menambah nilai pada path tertentu dalam JSON. Mengembalikan JSONB baru dengan nilai yang sudah diupdate.

Tipe hasil: jsonbDiperbarui: 16 Mei 2026

Syntax

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
1SELECT 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
1SELECT 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
1UPDATE users
2SET metadata = JSONB_SET(
3 COALESCE(metadata, {}::jsonb),
4 {last_login},
5 TO_JSONB(NOW())
6)
7WHERE 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).

Fungsi Terkait