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看到的方式来做你想做的。