"加载数据infile"插入数据库

时间:2014-12-13 03:00:23

标签: mysql powershell csv bulkinsert

我在将CSV文件加载到MySQL数据库时遇到问题。这是我的代码:

$sql =@"
LOAD DATA LOCAL INFILE 'e:\\03-06-44.txt' INTO TABLE monitor.app_meter CHARACTER SET UTF8           FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
IGNORE 1 LINES  
(name,total,@var1,@var2)  
SET start = STR_TO_DATE(@var1, '%m/%d/%Y %r'),end = STR_TO_DATE(@var2, '%m/%d/%Y %r')

"@


$MysqlQuery.CommandText = $sql
$MysqlQuery.ExecuteNonQuery()

我得到异常调用" ExecuteNonQuery"用" 0"参数:"命令执行期间遇到致命错误。" 无论我做什么。

但是当我在phpmyadmin中使用CSV中的实际值运行相同的load data infile块时,一切正常。数据被插入MySQL。

如果我将load data infile替换为普通insert,则代码执行正常。

1 个答案:

答案 0 :(得分:1)

我必须添加

Allow User Variables=True

进入MySQL DB连接字符串:

$Conn.ConnectionString = "SERVER=mysqlserver.localhost;DATABASE=xxx;" +
                         "UID=xxx;PWD=xxx;Allow User Variables=True"

并正确执行代码并将CSV数据插入MySQL。