sql >> データベース >  >> RDS >> PostgreSQL

ダッシュなしでuuidを生成する方法

    これがあなたが求めるものに近い何かを達成するための実用的な解決策です:

    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にキャストバックすると ハイフンが追加されます。




    1. pyodbcおよびMSSQLServerとの1つの接続で複数のカーソルを使用できますか?

    2. MYSQLのテーブルにランダムな数値を挿入する

    3. データベースの制約とは何ですか?

    4. Select Top 100Percentを使用する理由