數字型GUID

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,其實真不一定,代碼好不好只與個人有關係。一般來說,喜歡說自己代碼寫得好的人寫出來機器識別沒有問題,人去讀就有點麻煩了,而那些說自己代碼寫得一般般的人,寫出來的代碼倒是能大概看明白。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章