2015-09-25 94 views
0

任務是用N行隨機唯一數據填充表。使用MySQL UNI鍵將隨機字符串插入字段

我的下一個MySQL表結構:

+----------+--------------+------+-----+---------+----------------+ 
| Field | Type   | Null | Key | Default | Extra   | 
+----------+--------------+------+-----+---------+----------------+ 
| id  | int(11)  | NO | PRI | NULL | auto_increment | 
| username | varchar(20) | NO | UNI | NULL |    | 
+----------+--------------+------+-----+---------+----------------+ 

用戶名字段中具有字符串類型,但如果該腳本將插入數字的確定。

Theres與INSERT IGNORE髒解決方案,可以使無限循環1000個隨機行。

INSERT IGNORE INTO table (id,username) VALUES ('', 1 + ceil(rand() * 1000)); 

另外,我可以使用ON DUPLICATE KEY結構,但是這2個解決方案並不確定。

我想進行查詢,生成唯一的用戶名,這將是唯一的,並將從第一次插入。

所以,我告訴腳本添加1m行,並且它會插入1m的獨特數據而沒有任何不足。

任何想法?謝謝。

回答

1

你可以使用UUID(),它會給你一個隨機的字符串,可以適合你的領域,保證是唯一的碰撞機會很小。

+0

yes,'left(uuid(),LENGTH_NUMBER)'ok –