내일은 소설입니다.
sun's longitude:239 44 6.83 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
47 번 글: [MySQL] text 자료 입력시 컬럼수가 다를 경우
글쓴이: 산이 [홈페이지] 글쓴날: 2003년 07월 14일 10:58:52 월(오전) 조회: 3713
이글은

http://phpschool.com/bbs2/inc_view.html?id=36429&code=database2

에서 답변한 글을 가져온 글입니다.


>[제목] load infile~~ 할때, 이런 경우 어떻게 해야하죠
>[글쓴이] 헤줄렛
>
>제가 txt파일루,, 아래와 같이 넣은다고 가정해보겟습니다.

>
>1   |   김일남 | 남자 | 22
>2   |   김이녀 | 여자 | 27
>3   |   김삼남 | 남자 | 23
>4   |   김사남 | 남자 | 21
>
>이때, 테이블은 아래 정의문입니다.
>create table test (
>   mb_uid      int(15)         not null auto_increment , 
>   mb_name  varchar(60)  not null                       ,
>   mb_age     tinyint(3)     unsigned not null         ,
>   primary key (mb_uid)
>);
>
>이 같이 정의하고,, load infile구문을 통해,, 저장하려고 합니다.
>
>문제는 txt는 줄변 구분자가 ( | )로 구분되어 있는데,
불필요한것은 
>1   |   김일남    | 남자     | 22
>--      ------      ----        --
>필요     필요       불필요    필요
>
>성별부분이네요..

>load infile~할 경우 순서대루 읽어들이는데,,
 위 남자까지의 내용만 테이>블에 저장한다는거죠..

>이거.. 원하는 형태루, 성별에 해당되는 데이터를 빼구, 나머지
고유번호,
>이름, 나이만,, 넣는 방법좀 알려주세요..
>그럼 즐일되세요.. 
>

=============================

상위의 text 파일은 간단하므로 쉽게 수정이 가능하네요

shell> sed 's/|\(남자\|여자\)|/|/gi'
 data.txt > data.new.txt

그외...

text 파일에서 직접 수정하기 힘들다면 다음의 방법을 사용해
보세요.

우선 txt 파일의 자료 컬럼수과 table 컬럼수가 서로 같거나 table
컬럼수가
더 많아야 합니다.
그런데,
현재 상황이 그 반대이므로 table에서 특정 컬럼을 추가해주어야
합니다.

[table에 임시 mb_sex 컬럼 추가]

mysql> ALTER TABLE test ADD mb_sex varchar(4) NULL AFTER mb_name;

[데이터 입력]

mysql> LOAD DATA LOCAL INFILE '/path/to/data.txt' INTO TABLE test
> FIELDS TERMINATED BY '|';

[mb_sex 컬럼 삭제]

mysql> ALTER TABLE test DROP mb_sex;

이런식으로 하면 됩니다

 
이전글 : Re: [Javascript]Navigator object hierachy
다음글 : [PHP] MySQL log file statistics  
 from 61.254.75.40
JS(Redhands)Board 0.4 +@

|글쓰기| |답장쓰기| |수정| |삭제|
|이전글| |다음글| |목록보기|
인쇄용 

apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds