mysql - LOAD FILE,最后一行和最后一列输出错误

标签 mysql

这是sql文件

# mo.sql

DROP TABLE IF EXISTS mo;
#@ _CREATE_TABLE_
CREATE TABLE mo
(
  name CHAR(30),
  age INT,
  salary INT
);
#@ _CREATE_TABLE_

LOAD DATA LOCAL INFILE 'moja-2001.txt' INTO TABLE mo;

我从 Linux 终端运行它

mysql -p cookbook < mo.sql

没有警告,没有错误。

SELECT * FROM mo;
+--------------------------+------+--------+
| name                     | age  | salary |
+--------------------------+------+--------+
| jova jovic               |   24 |   NULL |
| ceda prashak             |   25 |   NULL |
| toma grobar     28 20001 | NULL |   NULL |
+--------------------------+------+--------+

我使用geany文本编辑器创建了txt文件

jova jovic      24 999
ceda prashak    25 1000
toma grobar     28 20001

为什么工资栏错误?为什么第三行也错误?

最佳答案

最后一行未使用正确的值分隔符。我怀疑其他行使用制表符分隔值,最后一行使用空格。 salary 列也是如此。

确保对值使用相同的分隔符。最好使用逗号(它是可见的且不易出错)并使用 LOAD DATAFIELDS TERMINATED BY 子句语句通知 MySQL 相关信息。

将文件更改为如下所示:

jova jovic,24,999
ceda prashak,25,1000
toma grobar,28,20001

并像这样导入:

LOAD DATA LOCAL INFILE 'moja-2001.txt' INTO TABLE mo FIELDS TERMINATED BY ',';

了解有关 LOAD DATA statement 的更多信息.

关于mysql - LOAD FILE,最后一行和最后一列输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998309/

相关文章:

php - 如何在 PHP 中使用 If/else 语句过滤 mysql 结果

mysql - 使用事务合并两个插入查询。但是我需要获取第一个插入的行 ID

php - 为所有帐户添加管理员访问权限

mysql - 在更新语句中添加 If

php - 用于显示和过滤 MySQL 数据库数据的网站

数组的 php 和 MYSQL SELECT 问题

mysql - 游标在存储过程中不起作用,它抛出 1064 错误

mysql - LAST_INSERTED_ID 的安全性

php - 我有 4 个类别,如何从表中每个类别 25 个问题中随机选择?

mysql - 为什么我无法添加新列?