Berikut adalah solusi yang berfungsi untuk mencapai sesuatu yang mendekati apa yang Anda minta:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
TAPI (dan ini adalah besar tapi ) di sini kita mengonversi uuid
ke string
itu berarti indeks itu sendiri akan jauh lebih mahal daripada angka atau uuid
yang sebenarnya .
Dalam artikel ini Anda dapat menemukan penjelasan yang bagus:
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
Sejauh yang saya tahu, uuid
Postgres' menggunakan tanda hubung meskipun Anda mencoba menghapusnya:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
Contoh di atas berfungsi dengan baik di Postgres 9.6, tetapi ketika kita melemparkan kembali ke uuid
tanda hubung ditambahkan kembali.