2011-11-29 84 views
1

我有一些大型的SQL文件和許多「INSERT INTO」語句。MySQL加載數據語句

我的命令:

mysql> Load data local infile 'values.sql' into table test_table; 

我的聲明看起來像這樣:

INSERT INTO test_table(column1,column2) VALUES('1','2'); 
INSERT INTO test_table(column1,column2) VALUES('3','4'); 

當我運行此命令,我TEST_TABLE COLUMN1將充滿完整的聲明。 我的錯誤是什麼?

回答

3

加載數據適用於CSV等內容。

您有實際的SQL INSERT語句。

嘗試:

mysql -u USERNAME -p DATABASENAME < values.sql

+0

這工作,但非常非常慢 – jussi

+0

速度緩慢?它每秒鐘做多少個條目? .sql文件有多大? – djdy

+0

sql文件是250MB 200 entrys每秒? 加載數據只需要1或2分鐘即可處理如此大的文件。我想我把它們轉換成csv文件。 – jussi

1

從MySQL參考LOAD DATA INFILE

的LOAD DATA INFILE語句以非常高的速度讀取文本文件行插入 表。文件名必須以文字 字符串的形式給出。

這意味着MySQL期望在該文件中具有列值的行,而不是執行SQL語句。

檢查Executing SQL Statements看到的方式來做你想做的。