![]() |
1
4
我怀疑LOAD DATA只看到一行,而IGNORE 1行导致整个文件作为一行读取。 我建议你弄清楚线终结者到底是什么。
在PC/DOS/Windows上,行尾通常是回车+换行符,在MySQL中表示为
在Unix/Linux上,行端通常是
我建议你试着和我一起跑步
看看这个烟球有多大。 如果在地址字段的末尾有回车符,这意味着行终止符可能是PC/DOS/Windows样式
我一点也不知道你是从哪里想出的
后续行动
Q:“
我试过了
Q:“
它在第1行中表示被截断,因为它包含的数据比输入字段多。但我有确切数量的输入字段。所以我猜断线是行不通的。当我这么做的时候
A:是的
这是发生在每一个专栏,还是某些特定的专栏?第一栏?第一排和每一排都会发出警告吗?请注意,警告消息实际上包括列的名称并标识行。 (我从来没有在加载数据时遇到过“列太大”错误。) 实际的警告信息是什么?这是错误还是警告?(MySQL返回的输出并不是不可理解的胡言乱语。警告消息包含一些特定信息。将错误消息的文本翻译为“列太大,它被截断了”是不必要的混淆。这无助于实际诊断问题。 (我想知道您的客户端是否将警告作为错误处理?我们可以从mysql命令行客户端发出SHOW warnings语句。)
如果你收到MySQL警告1262
考虑在LOAD DATA语句中显式列出列;这些字段与文件中的字段“对齐”。请注意,我们可以在列表中包含用户定义的变量
第一个字段将加载到第一个列出的标识符中,在本例中,
前缀为at符号的标识符
不要具体说明
换行符在MySQL字符串文字中表示为
这应该可以用来确定线路的终点。我们的问题是,如果它是DOS/Windows PC格式的文件,将有一个回车符,如果我们不指定它作为行终止符的一部分,回车符将是最后一个字段中包含的字符,这可能是我们不想要的。 如果我们不确定,也说不出来,那么测试一下,只指定换行符作为行终止符。
如果我们知道行终止符是DOS/Windows PC风格的
(如果该字符串正在通过bash shell或其他编程语言传递,我们只需要转义该反斜杠字符,这些语言在传递到MySQL之前解释字符串并吞下反斜杠字符。在MySQL命令行客户端中,我们不会遇到这个问题。) 我强烈建议我们创建一个较小的文件进行测试,可能只包含五行。。。标题行和四个数据行。 |
![]() |
hello_programmers · Mysql从其他表输出一列 2 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 2 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 2 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 2 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |