任务是用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的唯一数据而没有任何不足之处。
有什么想法吗?感谢。
答案 0 :(得分:1)
你可以使用UUID(),它会给你一个适合你的领域的随机字符串,保证是唯一的,碰撞的可能性很小。