Giriş
Açıklaması şöyle
PostgreSQL allows you to store and compare UUID values, but it doesn't have any built-in methods for creating them.
UUID üretmek için şu modüller kullanılabilir.
1. uuid-ossp Module'deki uuid_generate_v1(),uuid_generate_v4() kullanılabilir
2. pgcrypto Module'deki gen_random_uuid() kullanılabilir
3. UUIDv7 üretmek için pg_uuidv7 extension kullanılır
VARCHAR Sütun Tipi
UUID saklamak için bazen VARCHAR sütun tipi kullanılıyor.
Örnek
Şöyle yaparız. Burada id alanı UUID ama VARCHAR olarak saklanıyor
CREATE TABLE test.speed_uuid ( id varchar(36) PRIMARY KEY, name varchar(50), created timestamp );
1. uuid-ossp Module
Açıklaması şöyle
If using Azure Database for PostgreSQL, this can be enabled by going to Server Parameters → azure.extensions → Choose uuid-ossp. User needs to have admin credentials to do this.
Örnek
Eğer kurulu değilse kurmak için şöyle yaparız
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Örnek
Şöyle yaparız
CREATE TABLE books ( id UUID DEFAULT uuid_generate_v4 (), title VARCHAR(100) NOT NULL, primary_author VARCHAR(100) NULL, PRIMARY KEY (id) );
Örnek
Şöyle yaparız
CREATE EXTENSION "uuid-ossp"; INSERT INTO tenant (id, name) VALUES (uuid_generate_v4(), 'Company 1'); INSERT INTO tenant (id, name) VALUES (uuid_generate_v4(), 'Company 2');
2. pgcrypto Module
Örnek
Şöyle yaparız
CREATE TABLE thingie (id UUID PRIMARY KEY DEFAULT public.gen_random.uuid(),foo VARCHAR,bar VARCHAR,);
3. UUID7
Açıklaması şöyle
Similar to UUID v4, UUID v7 is a 128-bit identifier represented as a 32-character sequence of letters and numbers, formatted as 8–4–4–4–12. The distinctive feature of UUID v7 lies in its nature as a time-ordered UUID, encoding a Unix timestamp with millisecond precision in the most significant 48 bits. In alignment with UUID formats, 4 bits designate the UUID version, and 2 bits denote the variant. The remaining 74 bits are generated randomly, contributing to the uniqueness of this identifier.
Şeklen şöyle
Örnek
Şöyle yaparız
CREATE EXTENSION IF NOT EXISTS pg_uuidv7; CREATE TABLE examples ( example_id UUID PRIMARY KEY DEFAULT uuid_generate_v7(), created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL, deleted_at TIMESTAMP WITH TIME ZONE, created_by UUID NOT NULL, updated_by UUID NOT NULL, FOREIGN KEY (created_by) REFERENCES users(user_id), FOREIGN KEY (updated_by) REFERENCES users(user_id) );