MYSQL随机生成的id&LOAD DATA LOCAL INFILE

问题描述:

有没有办法使用LOAD DATA LOCAL INFILE &创建一个随机生成的id而不是使用自动递增函数?MYSQL随机生成的id&LOAD DATA LOCAL INFILE

我一直在使用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()'; 

干杯

看一看用户文件和用户变量。我认为你可以得到它与他们合作:http://dev.mysql.com/doc/refman/5.5/en/load-data.html

你确定UUID()是不是在每行中有不同的东西吗?我刚刚尝试过,它似乎工作正常。这只是第一组似乎每次都会改变的角色。

+0

你说得对,我只是在浏览插入了UUID()的内容() 干杯 – davidglassford 2011-04-27 09:32:38

很简单,以产生一个随机数。

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()