Dadurch wird für jeden Wert eine "eindeutige" Nummer erzeugt:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
Genau genommen besteht die Möglichkeit einer Kollision, aber sie ist sehr unwahrscheinlich.
Wenn das Ergebnis "zu groß" ist, könnten Sie es mit modulus:
versuchen<above-calculation> % 10000
Obwohl Kollisionen dann eine Wahrscheinlichkeit von 0,01 % haben, sollten Sie diese Formel mit allen bekannten Werten ausprobieren, um sicherzustellen, dass es keine Kollisionen gibt.