将数据填充加载到mysql-致命错误

vvppvyoh  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(338)

我尝试将数据加载到mysql表中,当我在mysql workbench中运行代码时,它工作正常,但当我尝试在我的c应用程序中运行它时,出现以下错误:

Fatal error encountered during command execution.

这是我的密码:

mConn.Open(); //Opens the connection
string query = "delete from time; alter table time auto_increment=1; LOAD DATA INFILE 'C://time_u.txt' INTO TABLE `time` CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES (@col2, @col3) set date = @col2, hour = @col3;";
WriteDataToDataBase(query); //This guy just executes the command.ExecuteNonQuery();
mConn.Close();

ps:我有3列,第一列是我不能导入的主键(id),它需要自动增加1,第二列是日期(varchar),第三列是小时数(varchar)。
更新
我试图更改加载数据代码,发现出现错误的部分是: (@col2, @col3) set date = @col2, hour = @col3; . 当我删除它时,代码可以工作(在我的例子中它不工作,因为如果没有它,它会尝试将数据放入主键),但是它不会显示第一个错误。
谢谢。。。

yqyhoc1h

yqyhoc1h1#

mysql.data正在处理 @col2 , @col3 作为(未定义的)查询参数,导致此错误。一种解决方法是添加 AllowUserVariables=true 连接字符串。
另一种解决方法是避免使用变量,直接加载到所需的列中:

LOAD DATA INFILE 'C://time_u.txt'
INTO TABLE time
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(date, hour);

相关问题