2012-08-29 2 views
1

나는 시소러스 텍스트 파일에서 mysql 테이블을 만들려고합니다. 나는 프로젝트 구텐베르크에서 벗어났습니다. 그러나, 나는 그것을하고있는 몇 가지 문제가 있습니다. 나는 성공적으로 정보가있는 테이블을 만드는 다음 스크립트를 쓸 수 있었다 : 텍스트 파일에서MySQL은 txt 파일에서 테이블을 만듭니다

LOAD DATA LOCAL INFILE 'C:/mthesaur.txt' 

    INTO TABLE thesaurus_entries 

    COLUMNS 
     TERMINATED BY ',' 

    LINES 

     TERMINATED BY '\r\n' 

을 첫 번째 단어는 동의어 사전의 항목이며, 쉼표로 구분 모든 동의어옵니다. 각 항목은 줄 바꿈으로 구분됩니다.

내 문제는 원래 많은 수의 열이있는 테이블 하나만 사용하려고했지만 쉽게 동의어에 대해 100 개 이상의 열을 만드는 방법을 알 수 없습니다.

DELIMITER $$ 

CREATE PROCEDURE ABC() 

    BEGIN 
     DECLARE a INT Default 0 ; 
     simple_loop: LOOP 
     SET a=a+1; 
     ALTER TABLE `thesaurus`.`thesaurus_entries` ADD COLUMN a 
VARCHAR(60) NULL AFTER `thesaurus_entries_id` ; 
     IF a=100 THEN 
      LEAVE simple_loop; 
     END IF; 
    END LOOP simple_loop; 
END $$ 

을하지만 한 모든 "는"대신 "등, 3, 2, 1"라는 이름의 100 열을 추가 지명 한 열을 추가했다 : 나는이 일을 시도

테이블을 키 값 쌍 (각 단어의 synomym에 대해 별도의 표가 있음)으로 만들기가 쉽다면 그 경로로 기꺼이 갈 수는 있지만 그 방법을 알아낼 수는 없습니다. txt 파일.

도움 주셔서 감사합니다.

답변

1

아마도 수백 개의 열이있는 테이블을 원하지 않을 것입니다. 대신 두 열, wordsynonym 만 있으면됩니다. 입력 파일의 각 행은 테이블에 여러 행을 (잠재적으로) 생성합니다.

입력 파일을 단어, 동의어 쌍의 목록으로 변환하기 위해 간단한 프리 프로세서 (원하는 스크립팅 언어로)를 작성할 수 있습니다. 그런 다음 지금하고있는 것처럼로드하십시오.

+0

그건 좋은 생각 같아. 불행히도 나는 여전히 프로그래밍을 배우고 있으므로 "마음에 드는 스크립팅 언어"라고 말할 때 내 마음은 비어 있습니다! 기본 Java, Spring, MySQL, JSP, CSS, 작은 자바 스크립트를 사용하는 방법을 알고 있지만 간단한 스크립팅 언어는별로 사용하지 않습니다. – CorayThan

+0

그런 다음 Java에서 수행하십시오. 행을 읽고','로 나누는 프로그램을 작성한 다음 첫 번째 요소 이후의 각 요소에 대해 첫 번째 요소와 그 요소를 인쇄하십시오. –

+0

나는 그것을 실제로 할 수 있었다! 그것은 아마도 필요한 것보다 훨씬 더 복잡했을 것이지만, 모든 것이 작동하도록했습니다. 이제 데이터베이스에 250 만 개의 행 테이블이 있습니다. – CorayThan

관련 문제