首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DB2逐行插入创建一个随机但唯一的字符标识符

DB2逐行插入创建一个随机但唯一的字符标识符
EN

Stack Overflow用户
提问于 2020-02-21 19:43:18
回答 3查看 728关注 0票数 0

目前,我在一个DB2表中有一个列,它通过一个字符加密的值通过网络调用和过程传递。它是带有用于加密的CSSID的类型字符(13)。

这已经成为一个巨大的痛苦,通过多个API,但最初是为了让我们使用一个独特的ID调用,而不是主要的关键。

在DB2-400中,对于惟一且在插入时随机创建但不需要解密的13个或更多字符串(仅是一个普通字符串),什么是次等的?

是否有一种通常被吸引到这方面的方法?我们不传递安全数据,所以不需要加密,但是我们只想要一个随机创建的、唯一的字符

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-22 19:10:02

试试hex(generate_unique())。它是唯一的CHAR(26)字符串。

to_char(timestamp(generate_unique()), 'YYYYMMDDHH24MISSFF6').您也可以使用字符函数的格式。比方说,使用像FF6SSMIHH24DDMMYYYY这样的反向格式可能是有用的,以避免在繁重的插入活动中出现唯一的索引页争用。

票数 1
EN

Stack Overflow用户

发布于 2020-02-21 21:16:22

这是一个不适合评论部分的评论。

我再也不能访问DB2-400了,但是我在DB2 10.5中测试了下面的代码。

代码语言:javascript
复制
create sequence seq1;

select concat('A', varchar_format(next value for seq1, '000000000000')) as my_id
from sysibm.sysdummy1;

如果连续运行4次,则结果如下:

代码语言:javascript
复制
A0000000000001
A0000000000002
A0000000000003
A0000000000004

也许DB2-400中有类似的东西。

票数 0
EN

Stack Overflow用户

发布于 2020-02-21 23:18:16

听起来你可能在用GENERATE_UNIQUE()

GENERATE_UNIQUE函数返回一个位数据字符串13字节长(CHAR(13)用于位数据)

和加密没什么关系..。

在我看来,这是一个理想的解决方案,它产生了一个独特的值,而不是一个简单的数字标识。那么你有什么问题呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60345283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档