使用MySQL UNI键将随机字符串插入字段

时间:2015-09-25 00:44:26

标签: mysql random indexing unique populate

任务是用N行随机唯一数据填充表格。

我有下一个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 个答案:

答案 0 :(得分:1)

你可以使用UUID(),它会给你一个适合你的领域的随机字符串,保证是唯一的,碰撞的可能性很小。