Noyob identifikator turi
Kirish: Ushbu qo'llanmada siz PostgreSQL UUID ma'lumot turi yordamida global miqyosda takrorlanmas noyob identifikatorlarni saqlash va ularni birlamchi kalit (PRIMARY KEY) sifatida ishlatishni o'rganasiz.
UUID (Universally Unique Identifier — universal yagona identifikator) RFC 4122 standarti bilan belgilangan 128 bitli (16 baytli) noyob sondir.
UUID ning asosiy afzalligi shundaki, u markaziy server yoki bazasiz ham global miqyosda (turli tizimlar va vaqtlar bo'yicha) unikal bo'lishni kafolatlaydi.
UUID ustunini yaratish sintaksisi:
CREATE TABLE table_name (
column_name UUID,
...
);
Ko'pincha UUID jadvallarda birlamchi kalit (PRIMARY KEY) turi sifatida ishlatiladi:
CREATE TABLE table_name (
column_name UUID PRIMARY KEY,
...
);
id = 1, 2, 3...) tizimda jami qancha ma'lumot yoki mijoz borligini tashqi dunyoga fosh qilib qo'yishi mumkin. Masalan, yangi foydalanuvchi id = 1000 ni ko'rib, platformada atigi 1000 ta mijoz borligini bilib oladi. UUID esa tasodifiy belgilar ketma-ketligidan iborat bo'lgani uchun ichki statistikani yashiradi.PostgreSQL 13 versiyasidan boshlab o'rnatilgan gen_random_uuid() funksiyasi yordamida tasodifiy UUID (v4) yaratish mumkin:
SELECT gen_random_uuid();
Natija:
gen_random_uuid
--------------------------------------
68f375c8-1b55-4558-a176-72a38a520149
Ushbu funksiyadan jadval yaratishda DEFAULT qiymat sifatida foydalanish mumkin:
CREATE TABLE table_name (
user_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
...
);
Mijozlar jadvalini yaratib, uning birlamchi kalitiga UUID turini va DEFAULT gen_random_uuid() qiymatini o'rnatamiz:
CREATE TABLE customers (
customer_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL
);
Jadvalga yangi mijozlarni qo'shamiz (bunda customer_id avtomatik tarzda yaratiladi):
INSERT INTO
customers (name)
VALUES
('ABC Corp.'),
('XYZ Inc.')
RETURNING *;
Natija:
customer_id | name
--------------------------------------+-----------
f1af387f-ac03-4784-bbcb-b564a88cd682 | ABC Corp.
aae1c410-06ff-48df-818b-dbed92a1efbc | XYZ Inc.
UUID ma'lumot turidan foydalaning.gen_random_uuid() funksiyasidan foydalaning.DEFAULT gen_random_uuid() orqali yangi qatorlarga avtomatik unikal kalit berilishini ta'minlang.