2011-12-19 73 views
0

在我的應用程序中,我想添加到數據庫表中的每個記錄的代碼必須是唯一的和隨機生成的(對用戶來說如此不可預知)。我假設通過代碼(java ee)產生這個想法是一個壞主意,因爲它需要經常請求數據庫管理系統(MySQL)來檢查unicity。 有人可以幫助我通過SQL生成這個代碼,就像一個大小爲n的變量char(varchar)。 感謝您的幫助。在MySql中生成一個隨機和唯一的varchar(n)?

+0

[如何在MySQL中生成唯一的ID?](http://stackoverflow.com/questions/1467581/how-to-generate-unique-id-in-mysql)可能的重複。也感興趣:[使用MySQL生成隨機和唯一的8字符字符串](http://stackoverflow.com/a/16738409/1446005) – RandomSeed 2014-06-19 11:44:48

回答

1

UUID()

這項工作?當然,如果這是你想要的而不是UUID類型,你將不得不將UUID的值存儲爲VARCHAR。

+0

我會研究這種可能性。感謝您的答覆。 – nabil 2011-12-19 17:53:16

+0

+1 - 使用UUID功能是解決此問題的唯一正確方法。 – TehShrike 2011-12-19 18:13:56

0

如果將唯一索引分配給該字段,MySQL可以驗證值的唯一性。例如,如果你有一個包含列名,年齡,代碼的表,並且你可以設置一個唯一的代碼密鑰,它將確保代碼不會被複制。

通過這種方式,您可以生成一個唯一的字符串/數字/任何您想要的語言(例如Java EE),然後將該字符串插入到表格中。如果密鑰已被使用,MySQL將拒絕插入。

下面是MySQL文檔的鏈接添加鍵表:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

希望有所幫助。

祝你好運。

+0

感謝您的鏈接。 – nabil 2011-12-19 18:00:36