加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用函数在PostgreSQL中生成随机唯一编号

发布时间:2020-12-13 16:13:10 所属栏目:百科 来源:网络整理
导读:在PostgreSQL中,如何为列生成随机唯一整数, 表格栏中没有退出的退货? 请参阅 pseudo_encrypt函数,该函数基于 Feistel network技术实现排列.结合postgres序列,这可以保证结果的独特性,以及人眼的随机性. 例: create sequence seq maxvalue 2147483647;creat
在PostgreSQL中,如何为列生成随机唯一整数,
表格栏中没有退出的退货?
请参阅 pseudo_encrypt函数,该函数基于 Feistel network技术实现排列.结合postgres序列,这可以保证结果的独特性,以及人眼的随机性.

例:

create sequence seq maxvalue 2147483647;

create table tablename(
 id bigint default pseudo_encrypt(nextval('seq')::int),[other columns]
);

这里的有效范围是0 … 2 ^ 32-1.如有必要,可以通过修改功能来调整.具有64位输出空间的变体可以在:pseudo_encrypt() function in plpgsql that takes bigint找到.

编辑:pseudo_encrypt只实现一个排列,它不接受用户提供的密钥.如果你喜欢自己的排列,根据密钥,你可以考虑skip32(基于Skipjack的32位分组密码,10字节宽密钥).

plpgsql函数(从Perl / C移植)可在以下位置获得:
https://wiki.postgresql.org/wiki/Skip32

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读