2011-04-24 3 views
2

LOAD DATA LOCAL INFILE & 자동 증가 기능을 사용하지 않고 무작위로 생성 된 ID를 생성하는 방법이 있습니까?MYSQL 무작위로 생성 된 ID 및 LOAD DATA LOCAL INFILE

내가 MySQL을의 UUID()를 사용하여 시도했지만 그것은 단지 각 행에 대해

$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()'; 

건배

답변

1

에서 업데이트 쿼리를 만들 수있는 대안으로

는 사용자 설명서와 사용자 변수에서보세요. 나는 그들과 함께 일할 수 있다고 생각한다. http://dev.mysql.com/doc/refman/5.5/en/load-data.html

UUID()은 각 행마다 다른 것을 넣지 않을 것이라고 확신 하는가? 나는 방금 해봤지만 제대로 작동하는 것 같다. 그것은 단지 매번 바뀌는 것처럼 보이는 첫 번째 문자 그룹입니다.

+0

당신이 옳았는데, 나는 단지 UUID()로 삽입 된 것을 건너 뛰었습니다. 건배 – davidglassford

0

그것은 임의의 숫자를 생성하는 간단을 동일한 ID를 생성합니다.

select floor(1 + (rand() * 5)) 

예를 들어 이것은 즉, 귀하의 경우, 각 행에 대한 고유 ID를 필요로하는 경우 나도 몰라

set contact_id = floor(1 + (rand() * 5)) 

되고 1에서 5 사이의 숫자를 생성 선택합니다. 그럴 경우 load data을 사용하여 고유 한 ID를 생성하는 방법을 알 수 없습니다. 두 번째 순간

set @i := 0; 
update table set contact_id = (@i := @i + 1) order by rand() 
관련 문제