sql >> Databáze >  >> RDS >> PostgreSQL

Jak generovat uuid bez pomlček

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.




  1. Sbalení datových záznamů pouze v případě, že se hodnota nezmění - Oracle SQL

  2. Vložte výsledek dotazu Mysql do pole uvnitř třídy

  3. Mazání řádků z více tabulek v MySQL

  4. mySQL - Vložení do tří tabulek