プロジェクトグーテンベルクから降りたシソーラステキストファイルからmysqlテーブルを作成しようとしています。しかし、私はそれを行うのにいくつかの問題があります。次のスクリプトを記述して、情報を含むテーブルを正常に作成できました。
LOAD DATA LOCAL INFILE 'C:/mthesaur.txt'
INTO TABLE thesaurus_entries
COLUMNS
TERMINATED BY ','
LINES
TERMINATED BY '\r\n'
テキストファイルでは、最初の単語はシソーラスエントリであり、その後にコンマで区切られたすべての同義語が続きます。各エントリは改行で区切られます。
私の問題は、元々、多数の列を持つ1つのテーブルだけを使用するつもりだったのですが、同義語の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 $$
しかし、「1、2、3など」という名前の列を100個追加するのではなく、「a」という名前の列を1つ追加するだけでした。
テーブルをキーと値のペアとして(単語の同義語ごとに別々のテーブルを使用して)作成するのが簡単であれば、私はそのルートを進んで行きますが、txtファイルからそれを行う方法を理解することはできません。
ご協力ありがとうございました!