【问题标题】:Load Data Infile errors加载数据文件错误
【发布时间】:2014-01-15 19:45:09
【问题描述】:

在加载文件数据的语法中,我看到字段和行子句是可选的。所以我只对utf8使用了字符集子句

这里是我的sql:

cmd = new MySqlCommand("LOAD DATA INFILE " + filename + " INTO TABLE " + tblname + " CHARACTER SET 'UTF8'", conn); 

文件名是地址,格式为:“E:\Macdata\20131228\atelier.sql”

直接取自数据库的表名是:“atelier”

但我得到了错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'E:\Macdata\20131228\atelier.sql INTO TABLE atelier CHARACTER SET 'UTF8'' 附近使用正确的语法

我的查询命令有什么错误?

MYSQLversion 是 5.0.10 和 XAMPP

更改查询后,我开始收到致命错误号 0(用 ' 括起来的文件名)

cmd = new MySqlCommand("LOAD DATA LOCAL INFILE '" + filename + "' IGNORE INTO TABLE " + tblname + " CHARACTER SET UTF8", conn);

我的数据文件有这个在 phpmyadmin 上工作的表单

INSERT INTO `atelier` VALUES(1, 'Chateau Carbonnieux -1', '2013-12-26', 23, 10, 0, '4 macarons differents', 'mamie', '2013-12-15 11:09:14', 'sabrina', '2013-12-18 05:29:26');

【问题讨论】:

    标签: mysql load-data-infile


    【解决方案1】:

    正如错误所说,您的陈述是错误的。您的第一个陈述中缺少引号(参见第二个陈述)。在此处检查语法: http://dev.mysql.com/doc/refman/5.6/en/load-data.html

    一些稀疏的注释:

    0 不是致命错误,它是成功的代码。

    IGNORE 处理重复行,而不是语法错误。

    【讨论】:

    • 我在插入之前截断表。正如我告诉 which eclose filnename 抑制了旧错误。我现在有一个新错误。我尝试读取数据(此数据在 phpmyadmin 中起作用)
    • 要说我是 mysql 的新手,我是在您在答案中添加的链接的帮助下编写了这个查询。但该链接并没有说用 '.对于插入或选择,我没有用'括住变量名,但我看到 LOAD DATA INFILE 需要用'括住文件名。致命错误不是我命名的,它由 mysql 显示的确切句子是:尝试读取结果集时遇到致命错误。
    • 更好看:语法是'file_name'
    • 不,因为当我故意在文件名中出错时,mysql 会给出另一个错误,这不是致命错误。在我的最后一个查询中,它尝试读取文件(此 sql 文件由 phpmyadin 加载,因此没有错误),但以尝试读取结果集时遇到的致命错误结束。
    • 您在此处粘贴的错误是 1064,这是致命的...相信我,所有 MySQL 开发人员每天都会看到几次 :) 无论如何,使用 ' 然后运行 ​​SHOW WARNINGS。你会看到另一个致命错误,或者(希望)你的语句中的所有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多