Här är en fungerande lösning för att uppnå något som ligger nära det du frågar efter:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
MEN (och det är ett stort men ) här konverterar vi uuid
till en string
det betyder att själva indexet blir mycket dyrare än ett nummer eller en riktig uuid
.
I den här artikeln kan du hitta en bra förklaring:
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
Så vitt jag vet, Postgres uuid
använder bindestreck även om du försöker ta bort dem:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
Exemplet ovan fungerar alldeles utmärkt i Postgres 9.6, men när vi castar tillbaka till uuid
bindestreck läggs tillbaka.