2013-10-13 2 views
0

GMail에서 연락처를 가져오고 있습니다. 연락처가 수십천 가지로 실행될 수 있습니다.MySQL 다중 행 삽입에서 삽입 ID 가져 오기

나는이 쿼리

$sql="INSERT IGNORE INTO lists (account_id, createdby, first_name, last_name, email, phone, date_created, list_type) VALUES $bindparam"; 
$importObj= otherquery($sql, $bind, $params); 

내가 더 날 수 있도록 다른 테이블에서 자신의 정보를 삽입하는 삽입 ID를 얻을 필요가 삽입을하고있다.

하나의 가져 오기에서 1,000 개 이상의 쿼리를 실행할 수없고 내 자동 증가가 일관되지 않을 수도 있다는 점을 고려하면 어떻게해야합니까? 동시에 여러 사람이 응용 프로그램을 사용하기 때문에 한 번에 두 명 이상이 삽입을 수행 할 수 있습니다 (가져 오기를 통한 것은 물론).

+0

거기에 '이메일'이있는 것처럼 보입니다 - 고유 키입니까? 그렇다면, 다음에 나오는'INSERT' 중에 ID를 검색하십시오. 이론적으로, 당신은 전혀 ID를 끌어낼 필요가 없습니다 .... –

답변

0

잘못된 가정에서 또 다른 질문입니다.

내가 한 수입

왜 그런 고려하여 1000 개 쿼리 이상을 실행할 수없는 점을 고려? PHP 나 mysql 어느 것도 쿼리의 수에 제한이 없다.

내 자동 증가가 일관되지 않을 수 있습니다.

자동 증가 일관성과 관련하여 실제로 문제가 없었던 의심스러운 사용자가 이미 수백 가지 질문을 제기했지만 아직 걱정하지는 않습니다. 모두에게 안심할 답변. MySQL의 개발자는 이 아니며, 당신이 상상하는 것처럼 바보가입니다. 자동 증분으로 잘못된 것은 없습니다.

사용자가 온라인 상태가 될 때까지 기다리는 대신, 일부 백그라운드 프로세스에서 가져 오기를 대기열에두기를 ​​바랍니다. 이러한 방식으로 가져 오기를 수행하면 쿼리 수나 스크립트 실행 시간 등 아무런 문제가 발생하지 않습니다. mysql 테이블을 기반으로 작성된 대기열을 만들거나 RabbitMQ와 같은 전용 소프트웨어를 사용하여 대기열을 만든 다음 백엔드 서버 중 일부를 백그라운드에서 모든 가져 오기를 수행하도록 만듭니다.