DB를 쉽게 사용하기 위한 가벼운 툴로 HeidiSQL이라는 툴이 있습니다!!
저는 요즘 이걸 이용해서 DB의 데이터를 관리하고 있어요
mysql workbench 같은거 깔려면 오래걸리니깐...
그러면 이번에 csv파일로 되어있는 데이터를 HeidiSQL을 이용해서 DB에 넣는 방법에 대해서 알아볼게요
1. HeidiSQL을 이용해 DB에 접속합니다
2. 도구-CSV 파일 가져오기를 누릅니다
3. 파일 선택하기 및 인코딩 방식 설정
파일 명의 오른쪽 노란 폴더를 눌러서 폴더를 선택합니다.
그리고 아래의 인코딩 방식을 맞춰주어야 합니다.
아니면 위와 같은 에러가 발생합니다
utf8 is currently oon alias for the character set UTF8MB3, but will be on alias for UTF8MB4 in a future release
위와 같이 뜨는 이유는 테이블에서 default character set을 utfmb4로 설정했는데
위에서는 인코딩을 utf8로 했기 때문입니다
인코딩도 맞쳐줘야 합니다!!
CREATE TABLE `user` (
// 생략
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
위의 경우가 utf8mb4로 설정한 경우 입니다. 이에 맞춥니다
4. 필드 종결자 선택
필드 종결자는 필드의 구분자를 이야기 합니다.
데이터가 1,id111,password 이런식으로 되어있다면 종결자로 ',' 선택
1;id111;password 처럼 되어있다면 ';'를 선택해야 합니다.
제대로 선택하지 않으면 위와 같은 에러를 볼 수도 있습니다.....
위와 같이 필드 종결자 변경!!
5. 줄 종결자 선택
위의 줄 종결자를 맞춰주어야 합니다
csv 파일을 메모장으로 열어보면 줄 종결자가 무엇인지 알 수 있습니다
LF로 되어있으면 '\n'
위와 같이 CRLF로 되어 있으면 \r\n 입니다
6. 넣을 DB, 테이블, 데이터만 설정
넣을 데이터를 제대로 설정하지 않으면 위와 같은 에러가 발생합니다
처음에 모든 열이 모두 체크 되어있는데 csv 파일의 column의 수와 맞지 않으면 에러가 발생합니다
예를들어 csv 파일에는 4개 열에 대한 정보가 있고
테이블에는 5개 열이 있고 1개의 열은 디폴트로 값을 설정해 두었다면
그 한 개의 열은 빼주어야 데잍가 맞춰서 들어가게 됩니다
데이터를 넣을 DB와 테이블을 설정하고
열에서 넣지 않을 데이터는 체크를 해제합니다. (위의 예시 데이터를 보면 5개의 데이터만 존재)
7. 데이터 형식 맞추기
데이터의 형식을 맞추지 않으면 위와 같은 에러를 발생시킵니다
보니까 csv 파일의 1876번째 데이터를 넣는데 너무 길어서 못 넣겠다네요
그러면 그 column의 길이를 늘려주면 됩니다(VARCHAR(10) -> VARCHAR(30))
csv 파일을 열어서 1876번째 줄의 데이터를 보니 이 데이터가 엄청 길었어요
이렇게 에러들을 하나씩 잡아가며 다 잡게 되면 바로 데이터가 테이블에 들어가게 됩니다!!!
10만개가 넘는 데이터도 거의 1-2초 만에 들어갔어요
데이터가 모두 정상적으로 잘 들어갔는지 확인하기 위해 아래 sql 실행하고 끄읏!!
SELECT count(*)
FROM user;