鍍金池/ 問答/Java  數(shù)據(jù)庫/ 可以用System.nanoTime()做主鍵ID嗎?

可以用System.nanoTime()做主鍵ID嗎?

單機服務,主鍵ID為長整型,需要做到不能連續(xù)的,比如自增就不能實現(xiàn)因為是連續(xù)的。
我想到了用System.nanoTime()做ID,因為沒有實踐過,不知道會不會出現(xiàn)ID重復?
問題是: 1 這樣可以實現(xiàn)嗎?

    2 如果有更好的辦法,那是什么了?
回答
編輯回答
忠妾

墨菲定律只要有可能出錯,就一定會出錯,不管它的概率有多小。

不能連續(xù)出現(xiàn),單機服務。舉個例子,假如你使用 自增ID 在加 System.nanoTime() 組成一個 long 類型數(shù)字(是字符串形式連接,而不是加法)。這個ID就不會重復了,因為 自增ID 一定不會重復。

2017年10月18日 03:18
編輯回答
未命名

不行。nanoTime使用的是一個不確定的起始時間,在重啟動以后很可能會有重疊。

可使用UUID。

2017年8月25日 11:46