我有一個MySQL
表看起來像這樣:在MySQL自動生成唯一文本值?
my_number
my_unique_text_field
,my_number
是一個整數
每當我插入一個數字到現場my_number
,我想唯一的文本值被分配到字段my_unique_text_field
。可以直接使用MySQL
來實現嗎?或者我必須使用我的客戶端生成這個唯一的文本字符串(我正在使用python
)?
我有一個MySQL
表看起來像這樣:在MySQL自動生成唯一文本值?
my_number
my_unique_text_field
,my_number
是一個整數
每當我插入一個數字到現場my_number
,我想唯一的文本值被分配到字段my_unique_text_field
。可以直接使用MySQL
來實現嗎?或者我必須使用我的客戶端生成這個唯一的文本字符串(我正在使用python
)?
mysql的UUID已經足夠了。但如果你仍然擔心可能的重複 - 你最好在python中生成它並處理唯一的約束錯誤。
謝謝。可以用'MySQL'產生'UUID'來重複嗎? – user3262424 2011-04-29 03:28:43
@ user540009:通過定義和描述 - nope:'UUID被設計爲一個在空間和時間上全球唯一的數字。兩次對UUID()的調用預計會生成兩個不同的值,即使這些調用是在兩臺不相互連接的獨立計算機上執行的。所以它在我們的宇宙中是唯一的。 – zerkms 2011-04-29 03:29:56
UUID不能有重複。 – 2011-04-29 03:30:03
如果你只是一個唯一的ID,而不是文字,最好的辦法是使用UUID後
謝謝。如果一個人在一個唯一的ID之後,並且可以選擇一個文本ID或一個數字ID,是否有一個偏好? – user3262424 2011-04-29 04:12:47
UUID是字母和數字的混合體 - 因此,沒有選擇。一般來說,我相信數字身份證更容易管理。 UUID可以在您遇到安全問題時使用。例如:假設你想爲你的用戶邀請生成邀請URL,最好使用UUID來代替數字ID,因爲數字ID很容易被猜出,邀請可能會被破壞..(如果你的應用程序沒有一個堅實的邏輯。 ) – 2011-04-29 04:20:26
謝謝你,Jasdeep – user3262424 2011-04-29 13:28:42
你需要這種獨特的文字是有意義的?如果不是這種情況,你可以考慮使用散列/ UUID。 – 2011-04-29 03:24:53
不,唯一的文本不應該是有意義的 - 它應該是唯一的 – user3262424 2011-04-29 03:29:06
你可以在MySQL的my_unique_field列設置唯一約束。每個新的重複添加都會失敗。但是,這種不符合你自動生成的想法?對? – 2011-04-29 03:33:01