2010-08-26 86 views
4

我有一个Excel电子表格与产品和类别与多对多的关系,我需要用它填充数据库。我正在寻找一种快速的方式来输入这些数据,并让连接表具有所有正确的信息。我有phpmyadmin,但它似乎有点慢,除非有一个捷径。我在想的另一种方法是编写一些我可以复制和粘贴的查询,但让连接表正确可能会更具挑战性。除非有人能想到我可以创建产品和类别并拥有连接连接的查询。最快的方式填充一个Db

产品

* PRODUCT_ID (primary key) 
* PRODUCT_NAME 

类别

* CATEGORY_ID (primary key) 
* CATEGORY_NAME 

PRODUCT_CATEGORIES_MAP

* PRODUCT_ID (primary key, foreign key to PRODUCTS) 
* CATEGORY_ID (primary key, foreign key to CATEGORIES) 
* QUANTITY 

回答

6

大多数数据库都有某种优化的批量插入的是更快/比使用INSERT语句不那么单调乏味 - 为MySQL ,这是LOAD DATA INFILE syntax

从电子表格编辑,可以很容易地生成CSV ouptut所以你可以使用:

LOAD DATA INFILE 'data.txt' INTO TABLE your_table 
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
    LINES TERMINATED BY '\r\n' 
    IGNORE 1 LINES; 
2

导出为CSV 3个文件,然后使用LOAD DATA INFILE将它们加载到服务器。

0

如果你需要做很多事情(比如我),可以考虑使用数据库客户端软件包如SquirrelSQL,或者写一个非常简单的使用Excel阅读器和DBI的PERL程序。