In PostgreSQL, come generare un numero intero univoco casuale per la colonna, return che non esce nella colonna della tabella?Come generare un numero univoco casuale in PostgreSQL usando la funzione
risposta
Vedere la funzione pseudo_encrypt, che implementa una permutazione basata sulla tecnica Feistel network. Combinato con una sequenza postgres, questo garantisce l'unicità del risultato, così come la casualità per l'occhio umano.
Esempio:
create sequence seq maxvalue 2147483647;
create table tablename(
id bigint default pseudo_encrypt(nextval('seq')::int),
[other columns]
);
Il campo effettivo di id
qui è 0...2^32-1
. Questo può essere regolato, se necessario, modificando la funzione. Una variante con uno spazio di output a 64 bit può essere trovata a: pseudo_encrypt() function in plpgsql that takes bigint.
EDIT: pseudo_encrypt
implementa una sola permutazione, e non accetta una chiave fornita dall'utente. Se si preferisce avere le proprie permutazioni, a seconda delle chiavi segrete, è possibile considerare skip32
(un codice a blocchi a 32 bit basato su Skipjack, con 10 byte di chiavi di larghezza).
Una funzione plpgsql (portato da Perl/C) è disponibile presso: https://wiki.postgresql.org/wiki/Skip32
- 1. Funzione per generare nel tempo un numero di incremento casuale
- 2. Come generare un numero casuale in Swift senza ripetere il numero casuale precedente?
- 3. Come generare il numero float casuale C
- 4. Come generare un numero pseudo casuale in FPGA?
- 5. Come generare un numero lungo in modo casuale nel clojure
- 6. Come posso generare un numero casuale usando la libreria standard C++ 11
- 7. Come generare un numero intero univoco dalla stringa?
- 8. Come generare un numero casuale dalla distribuzione discreta specificata?
- 9. Genera un numero casuale univoco per ciascun valore di matrice
- 10. Come generare un numero casuale di cinque cifre Java
- 11. Come generare un ID univoco in Dart
- 12. come generare un numero casuale da 0,5 a 1,0
- 13. Come posso generare un ID univoco in Python?
- 14. Come generare ID univoco in Java (intero)?
- 15. Come aggiungere un indice univoco subordinata PostgreSQL
- 16. PHP & mySQL (i): come generare un ID utente casuale?
- 17. Generare un numero casuale basato sulla distribuzione beta utilizzando Boost
- 18. Come generare un long UUID univoco
- 19. Numero casuale in un loop
- 20. elm genera un numero casuale
- 21. Generazione casuale numero CUDA
- 22. Postgresql: vincolo condizionalmente univoco
- 23. Come generare una data casuale tra due date usando php?
- 24. Genera un numero casuale a N cifre
- 25. Genera un numero casuale da un altro numero
- 26. Come posso generare un numero casuale all'interno di un intervallo in Rust?
- 27. PostgreSQL: condizionale vincolo univoco
- 28. Come generare un valore casuale negativo in python
- 29. Genera un numero casuale con un numero casuale in Objective-C
- 30. gaussiana distribuzione casuale in PostgreSQL