Zde je funkční řešení, jak dosáhnout něčeho blízkého tomu, co požadujete:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
ALE (a to je velké ale ) zde převedeme uuid
na string
to znamená, že samotný index bude mnohem dražší než číslo nebo skutečné uuid
.
V tomto článku najdete dobré vysvětlení:
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
Pokud vím, uuid
Postgresu používá pomlčky, i když se je pokusíte odstranit:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
Výše uvedený příklad funguje dobře v Postgres 9.6, ale když přeneseme zpět na uuid
pomlčky jsou přidány zpět.