Trong PostgreSQL, cách tạo số nguyên duy nhất ngẫu nhiên cho cột, trả lại mà không thoát trong cột bảng?Cách tạo số ngẫu nhiên duy nhất trong PostgreSQL bằng cách sử dụng hàm
Trả lời
Xem hàm pseudo_encrypt, thực hiện hoán vị dựa trên kỹ thuật Feistel network. Kết hợp với một chuỗi postgres, điều này đảm bảo tính độc đáo của kết quả, cũng như sự ngẫu nhiên đối với mắt người.
dụ:
create sequence seq maxvalue 2147483647;
create table tablename(
id bigint default pseudo_encrypt(nextval('seq')::int),
[other columns]
);
Phạm vi hiệu quả của id
đây là 0...2^32-1
. Điều này có thể được điều chỉnh nếu cần thiết bằng cách sửa đổi chức năng. Một biến thể với không gian đầu ra 64 bit có thể được tìm thấy tại: pseudo_encrypt() function in plpgsql that takes bigint.
CHỈNH SỬA: pseudo_encrypt
chỉ thực hiện một hoán vị và không chấp nhận khóa do người dùng cung cấp. Nếu bạn muốn có hoán vị của riêng mình, tùy thuộc vào khóa bí mật, bạn có thể xem xét skip32
(một mật mã khối 32 bit dựa trên Skipjack, với các phím rộng 10 byte).
Chức năng plpgsql (được chuyển từ Perl/C) có sẵn tại: https://wiki.postgresql.org/wiki/Skip32
- 1. Cách tạo số "ngẫu nhiên" nhưng cũng "duy nhất"?
- 2. Tạo các số ngẫu nhiên duy nhất trong Postgresql với độ dài cố định
- 3. tạo số ngẫu nhiên duy nhất trong Julia
- 4. Cách tạo số ngẫu nhiên trong Elixir?
- 5. Julia: tạo mảng số nguyên ngẫu nhiên duy nhất
- 6. Tạo số ngẫu nhiên không đồng nhất
- 7. Node.js - Cách tạo số ngẫu nhiên trong phạm vi cụ thể bằng cách sử dụng crypto.randomBytes
- 8. Hiển thị số ngẫu nhiên bằng cách sử dụng Jquery
- 9. Cách tạo số nguyên ngẫu nhiên ngẫu nhiên "đủ"?
- 10. Cách tạo số ngẫu nhiên lớn C
- 11. Cách tạo các hàm được nhập ngẫu nhiên
- 12. Cách tạo màu ngẫu nhiên trong matplotlib?
- 13. Trình tạo số ngẫu nhiên không thiên vị bằng cách sử dụng máy phát số
- 14. Tạo một số ngẫu nhiên trong một phạm vi bằng cách sử dụng C#
- 15. tạo số ngẫu nhiên bằng MYSQL
- 16. Làm cách nào để tạo số ngẫu nhiên bằng Python?
- 17. Tạo các số ngẫu nhiên duy nhất trong một phạm vi
- 18. Cách tạo số ngẫu nhiên khác nhau?
- 19. Tạo số ngẫu nhiên CUDA
- 20. Làm cách nào để tạo một chuỗi ngẫu nhiên và duy nhất trong Ruby?
- 21. Tạo Số ngẫu nhiên Dựa trên Phân phối Beta bằng cách sử dụng Boost
- 22. phân phối ngẫu nhiên Gaussian trong PostgreSQL
- 23. Cách nhanh nhất để tạo các bit ngẫu nhiên
- 24. Tạo số ngẫu nhiên đồng thời
- 25. Làm cách nào để tạo số ngẫu nhiên trong Dart?
- 26. Tạo tập hợp các số ngẫu nhiên duy nhất trong Java
- 27. Cách lấy số ngẫu nhiên trong FactoryGirl?
- 28. Làm cách nào để tạo số ngẫu nhiên trên iPhone?
- 29. Cách tạo 5 số ngẫu nhiên với tổng số 100
- 30. Sử dụng số ngẫu nhiên với GPU