oracle 数据库生成序列号时,同事提个变态需求,不能重复,不要GUID,可以不按顺序增长,说白了就是数字类型的GUID呗。
因为调用存储过程时单线程调用,自己想个办法,当前时间精确到毫秒加上三位随机数。
to_char(systimestamp, 'yymmddhh24missff3') || TRUNC(100+999*dbms_random.value);
但是如果多线程模式就有可能不行了,虽然概率非常,非常小,但是干技术的不就是喜欢较劲嘛,还是可以百度一下,还真能找到办法。
to_char(to_number(SYS_GUID(),rpad('x',32,'x')) * (-1));
现在的程序员还是比较好的做的,个人感觉主要工作就是两件事,1.配置环境,2.重复实现业务代码,剩下的工作就是上百度不断的撸。
还有,不要认为百度撸出来的代码就很lower,其实真不一定,代码好不好只与个人有关系。一般来说,喜欢说自己代码写得好的人写出来机器识别没有问题,人去读就有点麻烦了,而那些说自己代码写得一般般的人,写出来的代码倒是能大概看明白。