导入文件时出错"1366不正确的整数值:'1'"

Nei*_*eil 5 mysql powershell inline-editing

我正在尝试内联上传存储在UTF-8文本文件中的数据,我有两个问题.首先,此表上当前没有设置主键,并且此时未将其设置为自动递增或强制为空; 加载所有数据后,第一列将成为预期的主键,并在该点添加外键.

我收到以下错误:

25行受影响,1警告:1366不正确的整数值:第1行第'idtable_file'列的'1'记录:25已删除:0已跳过:0警告:1

当试图运行这个:

LOAD DATA LOCAL INFILE '/path' INTO TABLE sandr.table_file 
columns terminated by ','   
LINES terminated by '\n'
(idtable_file, owner_id, folder_id, @modified_date, @created_date, size, filename)
SET modified_date = STR_TO_DATE(@modified_date,'%d/%m/%Y %T'),
    created_date = STR_TO_DATE(@created_date,'%d/%m/%Y %T')
Run Code Online (Sandbox Code Playgroud)

在这张桌子上:

CREATE TABLE `table_file` (
  `idtable_file` int(11) DEFAULT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `folder_id` int(11) DEFAULT NULL,
  `modified_date` datetime DEFAULT NULL,
  `created_date` datetime DEFAULT NULL,
  `size` int(11) DEFAULT NULL,
  `filename` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

我做错了什么但是我刚刚开始使用MySQL,所以我在黑暗中刺伤了一下,对此有什么看法?另外,虽然上面的SQL查询在PowerShell中正常工作,但它只是这样:

LOAD DATA LOCAL INFILE '/path' INTO TABLE sandr.table_file 
columns terminated by ','   
LINES terminated by '\n'
Run Code Online (Sandbox Code Playgroud)

它炸弹了:

使用"0"参数调用"ExecuteNonQuery"的异常:"在命令执行期间遇到致命错误."

如果我将调整添加到日期字段.

LSe*_*rni 7

25行受影响,1警告:1366不正确的整数值:第1行第'idtable_file'列的'1'记录:25已删除:0已跳过:0警告:1

我也遇到过这个错误.值得注意的是

  • 错误显然是荒谬的(似乎说"1",这是一个整数,是一个不正确的整数值),并且
  • 它发生在第一行的第一列,只在那里.

如果这两个条件成立,那么罪魁祸首就是一个隐藏的三字节序列,它在您尝试加载的SQL文件的开头处(它被称为UTF8字节顺序标记).

在某些情况下,序列在错误消息中被转义并且可识别地显示,例如在此错误报告中.在其他情况下,它作为值的一部分发送给用户:

Incorrect integer value: '###1'  ...
Run Code Online (Sandbox Code Playgroud)

但是终端"吃"了BOM,你看到的是(现在荒谬的)错误

Incorrect integer value: '1' ...
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您需要在某个能够删除字节顺序标记的编辑器中打开要导入的文件(例如Notepad ++).