Fungsi GEN_RANDOM_UUID menghasilkan identifier unik universal (UUID) versi 4 yang terdiri atas bilangan heksadesimal acak. Gunakan fungsi ini untuk memberikan ID unik pada baris saat penulisan—misalnya sebagai nilai DEFAULT pada kolom kunci primer—tanpa perlu mengelola urutan ID secara manual.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Database Hologres
Izin untuk menjalankan pernyataan DDL di database tersebut
Instal ekstensi pgcrypto
Fungsi GEN_RANDOM_UUID memerlukan ekstensi pgcrypto. Instal ekstensi ini satu kali per database sebelum memanggil fungsi tersebut.
-- Install the extension.
CREATE EXTENSION pgcrypto;
-- Remove the extension if no longer needed.
DROP EXTENSION pgcrypto;Ekstensi ini berlaku dalam cakupan database. Jika Anda membuat database baru, jalankan juga perintah CREATE EXTENSION pgcrypto di database tersebut.Sintaksis
GEN_RANDOM_UUID() → uuidFungsi ini mengembalikan nilai bertipe uuid. Contohnya: 3a5401f1-0f0c-4380-8611-78e654efd86d.
UUID memiliki panjang tetap 128 bit, dengan rentang nilai dari 00000000-0000-0000-0000-000000000000 hingga ffffffff-ffff-ffff-ffff-ffffffffffff. Untuk informasi lebih lanjut mengenai tipe data UUID, lihat Data types.
Contoh
Hasilkan UUID sesuai permintaan
SELECT GEN_RANDOM_UUID();Hasil:
gen_random_uuid
------------------------------------
3a5401f1-0f0c-4380-8611-78e654efd86dIsi otomatis kolom UUID saat penyisipan
Panggil gen_random_uuid() dalam pernyataan INSERT ... SELECT untuk memberikan ID unik pada setiap baris dari tabel sumber.
-- Create a source table and populate it with sample data.
CREATE TABLE t_source (a INT);
INSERT INTO t_source SELECT * FROM generate_series(1, 5);
-- Create a destination table with a UUID column.
CREATE TABLE t_result (a INT, b UUID);
-- Insert rows and generate a UUID for each one.
INSERT INTO t_result SELECT *, gen_random_uuid() FROM t_source;
-- Verify the results.
SELECT * FROM t_result;Hasil:
a | b
---+--------------------------------------
1 | 27477537-abc4-4c17-9cf3-91c856a3b298
2 | 2522b1ce-fdf3-4b14-a3c3-78f4baac5186
3 | c69959a3-ad40-424f-9eb1-3271d0c6a8d4
4 | 5493e087-b1b8-47e2-8117-adea27aaa676
5 | f0e55a29-e72e-42e6-99aa-486db4f8b624
(5 rows)