MYSQL随机生成的id&加载数据本地信息

时间:2011-04-24 09:41:27

标签: mysql codeigniter

有没有办法使用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()';

干杯

2 个答案:

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