2010-08-26 42 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程序。