这是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 DATA
的 FIELDS 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/