UUID通常用来做接口和日志等数据的唯一主键,如果UUID重复将会导致数据覆盖、ABAP DUMP的情况,后果非常严重。
理论上,UUID是不会重复的,但项目中确实出现过UUID有重复的情况。为有效避免UUID重复的情况,可以对生成UUID的过程或者生成的UUID做一些处理。
思路1:等待0.1秒再产生UUID
注意这个时间别设置的太大,否则如果你的内表有几十万条数据,你要等很久的。
1 2 3 4 5 6 7 8 9 10 11 |
FORM FM_GEN_UUID CHANGING PV_UUID TYPE SYSUUID_C32. wait up to '0.01' seconds. TRY. CALL METHOD CL_SYSTEM_UUID=>IF_SYSTEM_UUID_STATIC~CREATE_UUID_C32 RECEIVING UUID = PV_UUID. CATCH CX_UUID_ERROR . ENDTRY. ENDFORM. |
思路2:给产生的UUID做进一步处理
例如用函数随机产生5个数字替换掉UUID中的固定或者不固定5位。
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/3642.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。