Oto działające rozwiązanie pozwalające osiągnąć coś zbliżonego do tego, o co prosisz:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
ALE (i jest to duże, ale ) tutaj konwertujemy uuid
do string
oznacza to, że sam indeks będzie znacznie droższy niż liczba lub rzeczywisty uuid
.
W tym artykule znajdziesz dobre wyjaśnienie:
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
O ile wiem, uuid
Postgresa używa myślników, nawet jeśli próbujesz je usunąć:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
Powyższy przykład działa dobrze w Postgresie 9.6, ale kiedy rzucimy z powrotem do uuid
myślniki są dodawane z powrotem.