0

我在我的 PC 中的 mysql 中创建了一个名为“test”的表,如下所示。

create table test(
telnum varchar(20) not null,
reg_date datetime not null default '0000-00-00 00:00:00',
remarks text,
primary key(telnum)
);

我将一个名为 1.txt 的文件上传到表“test”中。1.txt的内容如下:

01011112222

01022223333

01033334444

'load data infile' 语法如下:

load data infile "c:/temp/1.txt"
ignore into table test;

但有一个问题。

每个电话号码都被削减如下。

查询正常,3 行受影响,3 个警告(0.00 秒)
记录:3 删除:0 跳过:0 警告:3

mysql> 从测试中选择 *;

+-------------+---------+---------+
| 电话号码 | 注册日期 | 备注 |
+-------------+---------+---------+

      |12222 | 0000-00-00 00:00:00 |
      |23333 | 0000-00-00 00:00:00 |
      |34444 | 0000-00-00 00:00:00 |
+-------------+---------+---------+
3 行一组(0.00 秒)

11个字只剩下5个字。6 个字符消失。

第二个问题是“警告”。警告的原因如下。

mysql> 显示警告;
+---------+------+-------------------------------- ------------------+
| 水平 | 代码 | 留言 |
+---------+------+-------------------------------- ------------------+
| 警告 | 第1264章 第 1 行的列 'reg_date' 的值超出范围 |
| 警告 | 第1264章 第 2 行的列 'reg_date' 的值超出范围 |
| 警告 | 第1264章 第 3 行的列 'reg_date' 的值超出范围 |
+---------+------+-------------------------------- ------------------+

3 行一组(0.00 秒)

我没有在 reg_date 字段中添加任何内容。但消息显示列“reg_date”的值超出范围。

原因是什么?我该如何解决这些问题?

4

1 回答 1

0

尝试更改行分隔符。在 Windows 上,如果省略子句,通常是\r\n默认的\nLINES TERMINATED BY

LOAD DATA INFILE "/tmp/1.txt"
IGNORE INTO TABLE test
LINES TERMINATED BY '\n'
于 2013-08-25T07:10:58.620 回答