2015-09-25 56 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 –