sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL - Tilldela heltalsvärde till sträng i case-satsen

Detta ger ett "unikt" nummer för varje värde:

('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint

Strängt taget finns det en risk för en kollision, men det är väldigt avlägset.

Om resultatet är "för stort", kan du prova modulus:

<above-calculation> % 10000

Även om kollisioner då skulle ha en chans på 0,01 %, bör du prova den här formeln mot alla kända värden för att säkerställa att det inte finns några kollisioner.



  1. postgresql motsvarande $mysqli->insert_id

  2. Välj flera kolumner från flera tabeller

  3. MySql Query mycket långsam

  4. MySQL med Entity Framework 6