테이블 1 개와 테이블 1 개가 '사용자'와 '계정'으로 구성되어 있습니다.이중 키 업데이트가있는 MySQL 내장 INSERT
계정은 FK의 USER_ID을 가지고 있으며, 계정은 고유 ACCOUNT_ID있다
나는 최대 50,000 개의 행과 중 각 행에 대한 CSV 업로드를 가지고 가야 :
- 새로운 행으로 데이터를 삽입 account.account_number가 고유 한 경우 account.account_number가 고유 한 경우
- account.account_number가 이미 존재하는 경우 계정 테이블 행을 업데이트하십시오.
- account.account_number가 csv에 존재하지 않으면 계정과 사용자 행을 제거하십시오.
지금까지 account.account_number col이 고유한지 확인하기 위해 계정 테이블을 다루고 있지만이 테이블에 새 행을 추가하려면 이미 추가 된 새 행의 user_id가 필요합니다. 사용자 테이블
INSERT INTO account (account_number, trans_rate....etc) VALUES (multiple data sets),(...),(....) ON DUPLICATE KEY UPDATE ...etc
그래서 계정 테이블을 처리하므로 필요에 따라 업데이트/삽입합니다. 물론 user_id 열은 사용자 레코드가 작성되지 않았으므로 NULL로 남습니다.
위의 문장 내에 새 사용자 행에 대한 insert 문을 포함시킬 수 있는지 궁금하지만 어디서부터 시작해야할지 모르겠다 ... 그리고 실제로 인터넷 검색은 실제로 가능하다는 사실을 깨닫게했다. 지금까지.
또는 다른 어떤 아이디어? ..
내가 한 줄에 여러 쿼리이 작업을 수행하는 방법을 볼 수 있습니다,하지만 난 데이터 가져 오기 내가 너무 많은 함께 할 경우 걸릴 것입니다 시간에 대한 걱정 별도의 쿼리.
기존 행을 모두 삭제 한 다음 CSV 파일의 데이터를 기반으로 다시 삽입 할 수 있습니까? –
사용자가 계정 테이블에 저장된 추가 정보를 제출하기 때문에 불행히도 아닙니다. – petesiss