2010-05-07 87 views
3

我正在從csv導出數據到mysql數據庫,我希望數據庫爲每個導入的記錄生成唯一的ID。我想在Crystal報表中使用唯一字段生成收據編號。如何在不使用AUTOINCREMENT的情況下生成唯一ID

對於這樣做的最佳方式,您會有什麼建議?

+1

爲什麼要避免自動增加?如果你想避免低數字,你應該能夠使用AUTO_INCREMENT表選項給它一個適當大的種子值。 – tvanfosson 2010-05-07 10:54:16

+2

你應該解釋爲什麼AUTOINCREMENT對你沒有好處,以便得到一個很好的答案。 – Unreason 2010-05-07 10:59:38

回答

3

如果你不想自動增加唯一的方法來保證唯一性就是使用GUID作爲id。

我說「虛擬」,因爲理論上有可能會產生兩次相同的GUID,但它對於所有日常用途實際上都是零。從維基百科文章:

唯一密鑰(21 或3.4×10 )的總數是很大,以致所產生的兩倍相同數目的概率是非常小的,並且某些技術已經開發出來以幫助確保數字不重複。

+0

謝謝,我會用auto_increment函數去。但是,如果我使用LOAD DATA INFILE命令,我需要知道它是否會自動生成ID。 另外我需要知道如何解決出現的位數。我想使用十六進制(id)函數將數字轉換爲十六進制,但我希望十六進制值顯示在6. ABCDEF塊中。 – Ibrahim 2010-05-08 13:50:09

相關問題