Ini akan menghasilkan angka "unik" untuk setiap nilai:
('x'||substr(md5("PQ"."Value"),1,8))::bit(64)::bigint
Sebenarnya, ada kemungkinan tabrakan, tapi sangat jauh.
Jika hasilnya "terlalu besar", Anda dapat mencoba modulus:
<above-calculation> % 10000
Meskipun tabrakan akan menjadi peluang 0,01%, Anda harus mencoba rumus ini terhadap semua nilai yang diketahui untuk memastikan tidak ada tabrakan.