ویرگول
ورودثبت نام
مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۲ دقیقه·۲ ماه پیش

مقدمه‌ای بر نوع UUID در Postgres


در این آموزش، با نوع داده PostgreSQL UUID و نحوه تولید مقادیر UUID با استفاده از یک ماژول ارائه شده آشنا خواهید شد.

UUID مخفف Universal Unique Identifier است که توسط RFC 4122 و سایر استانداردهای مرتبط تعریف شده است.

مقدار UUID یک کمیت ۱۲۸ بیتی است که توسط یک الگوریتم تولید می‌شود و در سراسر جهان با استفاده از همان الگوریتم، یکتایی را تضمین می‌کند.

مثال‌هایی از مقادیر UUID

۴۰e6215d-b5c6-4896-987c-f30f3678f608

۶ecd8c99-4036-403d-bf84-cf8400f67836

۳f333df6-90a4-4fda-8dd3-9485d27cee36

یک UUID یک توالی از ۳۲ رقم هگزادسیمال است که در گروه‌هایی با خط فاصله از هم جدا شده‌اند.

به دلیل ویژگی یکتایی خود، UUID اغلب در سیستم‌های توزیع شده یافت می‌شود زیرا تضمین بهتری نسبت به نوع داده SERIAL برای یکتایی در یک پایگاه داده واحد دارد.

برای ذخیره مقادیر UUID در پایگاه داده Postgre، از نوع داده UUID استفاده می‌کنید.

تولید مقادیر UUID

Postgre یک تابع برای تولید UUID فراهم می‌کند:

gen_random_uuid()

تابع gen_random_uuid() یک UUID نسخه ۴ (تصادفی) برمی‌گرداند. به عنوان مثال:

SELECT gen_random_uuid();

خروجی:

gen_random_uuid

————————————–

d6eb621f-6dd0-4cdc-93f5-07f51b249b51

(۱ row)

ایجاد یک جدول با ستون UUID

ما یک جدول ایجاد می‌کنیم که کلید اصلی آن از نوع داده UUID است. علاوه بر این، مقادیر ستون کلید اصلی به طور خودکار با استفاده از تابع gen_random_uuid() تولید می‌شوند.

ابتدا، جدول contacts را ایجاد کنید:

CREATE TABLE contacts (

contact_id uuid DEFAULT gen_random_uuid(),

first_name VARCHAR NOT NULL,

last_name VARCHAR NOT NULL,

email VARCHAR NOT NULL,

phone VARCHAR,

PRIMARY KEY (contact_id)

);

در این دستور، نوع داده ستون contact_id UUID است.

ستون contact_id دارای یک مقدار پیش‌فرض است که توسط تابع gen_random_uuid() فراهم می‌شود. بنابراین، هر زمان که یک سطر جدید وارد کنید بدون مشخص کردن مقدار برای ستون contact_id،  Postgreتابع gen_random_uuid()  ا برای تولید مقدار آن فراخوانی می‌کند.

سپس، برخی داده‌ها را به جدول contacts وارد کنید:

INSERT INTO contacts ( first_name, last_name, email, phone)

VALUES

(‘John’, ‘Smith’, ‘john.smith@example.com’,  ‘۴۰۸-۲۳۷-۲۳۴۵’),

(‘Jane’, ‘Smith’, ‘jane.smith@example.com’, ‘408-237-2344’),

(‘Alex’, ‘Smith’, ‘alex.smith@example.com’, ‘408-237-2343’)

RETURNING *;

خروجی:

contact_id              | first_name | last_name |         email          |    phone

————————————–+————+———–+————————+————–

ca61da8c-938a-48a6-8eb6-55aa08cd1b08 | John       | Smith     | john.smith@example.com | 408-237-2345

fe2af584-8576-4d0e-b10d-6ec970732f8e | Jane       | Smith     | jane.smith@example.com | 408-237-2344

۱۴۱aefe8-f553-43b9-bfbf-91361e83b15e | Alex       | Smith     | alex.smith@example.com | 408-237-2343

(۳ rows)

خروجی نشان می‌دهد که ستون contact_id توسط مقادیر UUID تولید شده توسط تابع gen_random_uuid() پر شده است.

استفاده از ماژول uuid-ossp در نسخه‌های قدیمی Postgre

اگر از نسخه قدیمی Postgre استفاده می‌کنید، نیاز به استفاده از یک ماژول شخص ثالث به نام uuid-ossp دارید که الگوریتم‌های خاصی برای تولید UUID فراهم می‌کند.

برای نصب ماژول uuid-ossp، از دستور CREATE EXTENSION به شرح زیر استفاده کنید:

CREATE EXTENSION IF NOT EXISTS “uuid-ossp”;

عبارت IF NOT EXISTS به شما اجازه می‌دهد از نصب مجدد ماژول جلوگیری کنید.

اگر می‌خواهید یک مقدار UUID تولید کنید، می‌توانید از تابع uuid_generate_v4() استفاده کنید. به عنوان مثال:

SELECT uuid_generate_v4();

خروجی:

uuid_generate_v4

————————————–

۳۵۱c1afe-21b2-486c-951b-66bc9e852530

(۱ row)

برای اطلاعات بیشتر در مورد توابع تولید UUID، به مستندات ماژول uuid-ossp مراجعه کنید.

خلاصه

UUID مخفف Universal Unique Identifier است.

از تابع gen_random_uuid() برای تولید یک UUID نسخه ۴ (تصادفی) استفاده کنید.

postgresqlمشاوره postgresqlآموزش postgresqlخدمات postgresqlپایگاه داده پستگرس
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید