반응형
MYSQL LOAD DATA INFILE 중복 행 무시(기본 키로 자동 증가)
이미 데이터베이스에 있는 행을 무시하고 싶어서 LOAD DATA INFILE 명령을 사용하는 데 문제가 발생했습니다.다음과 같은 데이터를 가진 표가 있다면,
id |name |age
--------------------
1 |aaaa |22
2 |bbbb |21
3 |bbaa |20
4 |abbb |22
5 |aacc |22
여기서 id는 자동 증분 값입니다.내가 가지고 있는 csv 파일에는 다음과 같은 데이터가 포함되어 있습니다.
"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"
행을 무시하고 싶지만,
"aaaa","22"
"abbb","22"
"aacc","22"
나머지는 테이블에 올려놓습니다.그리고 테이블에 모든 것을 업로드 하는 아직 내가 가지고 있는 질문은 다음과 같습니다.
LOAD DATA INFILE 'member.csv'
INTO TABLE tbl_member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
(name, age);
이 일을 도와주시기 바랍니다.대단히 감사할 것입니다.나는 많은 링크를 시도했지만 도움이 되지 않았습니다 :(
연령 열에 유니크 인덱스를 생성한 다음:
LOAD DATA INFILE 'member.csv'
IGNORE INTO TABLE tbl_member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
(name, age);
한 가지 방법은 임시 테이블을 사용하는 것입니다.여기에 업로드하고 SQL을 사용하여 temp table에서 tbl_member를 업데이트합니다.
INSERT INTO tbl_member
SELECT Field1,Field2,Field3,...
FROM temp_table
WHERE NOT EXISTS(SELECT *
FROM tbl_member
WHERE (temp_table.Field1=tbl_member.Field1 and
temp_table.Field2=tbl_member.Field2...etc.)
)
여러 열에 고유 인덱스를 만들 수 있습니다.LOAD DATA는 모든 열에 기존 행과 일치하는 행을 삽입하지 않습니다.
예: ALTER TABL_member ADD UNIQUE_index(이름, 나이)
언급URL : https://stackoverflow.com/questions/12891337/mysql-load-data-infile-ignore-duplicate-rows-autoincrement-as-primary-key
반응형
'programing' 카테고리의 다른 글
Wildfly 및 자동으로 데이터베이스에 다시 연결 (0) | 2023.11.06 |
---|---|
javascript code 실행 전에 javascript 파일이 모두 로딩될 때까지 기다리는 것이 가능합니까? (0) | 2023.11.06 |
설치된 모든 node.js 모듈의 목록을 인쇄합니다. (0) | 2023.11.01 |
Android와 iPhone 둘 다 모바일 앱에서 추천 프로그램을 구현하는 방법 (0) | 2023.11.01 |
윈도우용 단말기 크기를 c로 얻는 중? (0) | 2023.11.01 |