MySQL从文本文件创建表

时间:2012-08-29 17:45:16

标签: mysql

我正在尝试从我从项目gutenberg下载的同义词库文本文件中创建一个mysql表;但是,我遇到了一些问题。我能够编写以下脚本,该脚本成功创建了一个包含以下信息的表:

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 $$

但所有这一切都是添加一个名为“a”的列,而不是添加100个名为“1,2,3等”的列。

如果很容易将表格作为键值对(每个单词的同义词都有单独的表格),我会愿意走这条路线,但我无法弄清楚如何从txt中做到这一点文件。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可能不希望表格包含数百列。相反,您可能只需要两列,wordsynonym。输入文件中的每一行都会生成(可能)表中的多行。

您可以编写一个简单的预处理器(使用您喜欢的脚本语言)将输入文件转换为单词同义词对列表。然后像现在一样加载它。