有没有办法使用LOAD DATA LOCAL INFILE&创建一个随机生成的id而不是使用自动增量函数?
我尝试使用MySQL的UUID(),但它只为每行产生相同的id
$sql = "LOAD DATA LOCAL INFILE \"" . $data['full_path'] . "\" REPLACE INTO TABLE as " . 'FIELDS TERMINATED BY "\\n"' . 'LINES TERMINATED BY "\\r" IGNORE 1 LINES (contact_id, company) SET contact_id=UUID()';
干杯
答案 0 :(得分:1)
查看用户文档和用户变量。我认为你可以让它与他们合作:http://dev.mysql.com/doc/refman/5.5/en/load-data.html
你确定UUID()
并没有在每行中添加不同的内容吗?我刚刚尝试过,似乎工作正常。它只是第一组似乎每次都改变的角色。
答案 1 :(得分:0)
生成随机数很简单。
select floor(1 + (rand() * 5))
例如,此选择生成1到5之间的数字,在您的情况下,变为
set contact_id = floor(1 + (rand() * 5))
我不知道每行是否需要唯一的ID。在这种情况下,我不知道如何使用load data
生成唯一ID。
作为替代方案,您可以在第二时间进行更新查询
set @i := 0;
update table set contact_id = (@i := @i + 1) order by rand()