GEN_RANDOM_UUID; rastgele onaltılık tamsayılardan oluşan sürüm 4 evrensel benzersiz tanımlayıcı (UUID) üretir. ID dizilerini manuel olarak yönetmeden, satırlara yazma sırasında benzersiz ID'ler atamak için bu işlevi kullanın. Örneğin, birincil anahtar sütununda DEFAULT değeri olarak ayarlayabilirsiniz.
Önkoşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Bir Hologres veritabanı
İlgili veritabanında DDL deyimlerini çalıştırma izni
pgcrypto uzantısını yükleyin
GEN_RANDOM_UUID işlevi pgcrypto uzantısına ihtiyaç duyar. İşlevi çağırmadan önce bu uzantıyı her veritabanında bir kez yükleyin.
-- Install the extension.
CREATE EXTENSION pgcrypto;
-- Remove the extension if no longer needed.
DROP EXTENSION pgcrypto;
Uzantı veritabanı kapsamındadır. Yeni bir veritabanı oluşturursanız, CREATE EXTENSION pgcrypto deyimiyle bu uzantıyı ilgili veritabanında da yükleyin.
Söz dizimi
GEN_RANDOM_UUID() → uuid
Bir uuid değeri döndürür. Örnek: 3a5401f1-0f0c-4380-8611-78e654efd86d
UUID sabit uzunlukta 128 bitlik bir değerdir. Değer aralığı 00000000-0000-0000-0000-000000000000 ile ffffffff-ffff-ffff-ffff-ffffffffffff arasındadır. UUID veri türü hakkında daha fazla bilgi için bkz. Veri türleri.
Örnekler
İsteğe bağlı UUID oluşturma
SELECT GEN_RANDOM_UUID();
Sonuç:
gen_random_uuid
------------------------------------
3a5401f1-0f0c-4380-8611-78e654efd86d
Ekleme sırasında UUID sütununu otomatik doldurma
Kaynak tablodaki her satıra benzersiz bir ID atamak için INSERT ... SELECT deyimi içinde gen_random_uuid() işlevini çağırın.
-- 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;
Sonuç:
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)