将数据从文本导入mysql时出现问题

时间:2009-02-24 08:44:32

标签: java mysql text import load-data-infile

我使用了一个应用程序将一些数据从文本文件导入mysql。我使用了以下代码。

try
{
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                               ResultSet.CONCUR_UPDATABLE);
   stmt1= (Statement) conn.createStatement();
   int deleteRows = stmt1.executeUpdate("delete  from powerdata where dateformat < dateformat_sub(now(), interval 8 month)");
   query = "LOAD DATA LOCAL INFILE \"E:\\powerdata.txt\" INTO TABLE powerdata  set dateformat=str_to_date(date, '%m/%d/%Y' '%H:%i:%s');";
   int Update= stmt.executeUpdate(query);
}

但是将文本中的数据加载到mysql的查询为null。谁能告诉我我犯了哪个错误?

2 个答案:

答案 0 :(得分:1)

可能问题是\"E:\\powerdata.txt\"位吗?你正在逃避引号,但你没有逃避反斜杠。这意味着您的查询实际上如下所示: LOAD DATA LOCAL INFILE“E:\ powerdata.txt”INTO TABLE powerdata set dateformat = str_to_date(date,'%m /%d /%Y''%H:%i:%s');

要修复文件名,请使用\"E:\\\\powerdata.txt\"

答案 1 :(得分:0)

您可能没有向用户授予使用FILE权限的权限。如果查看documentation,他们会谈到远程用户使用LOAD DATA LOCAL INFILE加载数据所需的权限。有一个很好的理由关闭它,所以如果你启用它就要小心。