これがあなたが求めるものに近い何かを達成するための実用的な解決策です:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
しかし(そしてそれは大きいが )ここでは、uuid
を変換します string
に つまり、インデックス自体は、数値や実際のuuid
よりもはるかに高価になります。 。
この記事では、適切な説明を見つけることができます。
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
私の知る限り、Postgresのuuid
ハイフンを削除しようとしても、ハイフンを使用します:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
上記の例はPostgres9.6で問題なく機能しますが、uuid
にキャストバックすると ハイフンが追加されます。