텍스트 파일에 저장된 데이타를 데이터베이스 테이블에 insert하는 방법은; 검색해보면 이런 방법이 나올겁니다.

텍스트파일을 line by line으로 읽어서 for문으로 select문을 돌려서 하나씩 넣는 방법^^;

그런데; MySQL내에서 이런 처리를 위한 쿼리문이 존재합니다ㅎ;

그렇게 고생 안하셔도^^;

LOAD DATA INFILE '파일경로' INTO TABLE 테이블이름
FIELDS TERMINATED BY '필드구분자' LINES TERMINATED BY '라인구분자' (column1, column2.....);

그런데 보통 이렇게 다 않쓰셔도 되요; 뒤에 colum이라는 건 insert into tablename(clolumn1....) <-- 이때 괄호랑 똑같아서 생략하셔도 되요~ 필드구분자는... ','나 '\t'을 많이 쓰겠죠... 라인 구분자는 '\n'

LOAD DATA INFILE '파일경로' INTO TABLE 테이블이름 <-- 가장 간단하게는 이렇게만 쓰셔도 됩니다.


움.... 그런데 실제론...

LOAD DATA LOCAL INFILE '경로'
INTO TABLE smslog FIELDS TERMINATED BY '필드구분자';


이렇게 써주세요;ㅎ 서버가 내 PC가 아닐 경우에는 내 PC에 있는 데이타를 올릴 경우 local infile이라고 붙여야합니다.
(물론 서버에 csv나 txt가 있으면 빼줘야하지만요. 그런데..; 전 그런 경우가 별로 없더라구요;ㅋ 취향에 따라ㅎ)

보통 데이타파일이 이렇게 되어 있으니까;

data1, data2
data1-1, data2-1

참고로... 엑셀에서 데이타를 텍스트 파일로 잔뜩 저장시키고(csv나 뭐 그런것들요ㅎ) insert시키시면 편합니다ㅎㅎㅎㅎ

그리고... 반대로 텍스트 파일로 백업시키는 방법은...

SELECT ...  INTO OUTFILE 'file_name' FROM  tbl_name

입니다ㅎㅎㅎㅎ

아; 그리고 혹시 DB를 언어를 utf8로 설정하였어도 한글이 안들어가는 경우는...

텍스트파일이나 csv파일의 인코딩을 utf8로 설정해주시면 됩니다. 텍스트 에디터에 다른 이름으로 저장하면 그런 것들이 있으니까ㅎㅎㅎ 참고하시기 바랍니다(저도 사실 이것때문에 고생을;ㅋ)

찾아보니 자세한 설명은 여기 있더라구요~ㅎ 참고하세요ㅋㅋㅋ
http://radiocom.kunsan.ac.kr/lecture/mysql/prototype/prototype_load_data_infile.html


출처 - http://ocworld.tistory.com/92

'DB > MySQL' 카테고리의 다른 글

mysql - 튜닝 정보 및 주의 사항  (0) 2012.08.09
mysql - BLOB, TEXT 데이터 형식  (0) 2012.08.09
mysql - 행 번호 매기기  (1) 2012.06.23
Mysql DB 복호화 (password(), md5(), crypt())  (4) 2012.05.25
mysql에서 limit 사용  (0) 2012.05.02
Posted by linuxism
,