社区
MySQL
帖子详情
请问MYSQL使用LOAD时如何跳过数据格式错误的行
wh62592855
2011-10-23 02:47:47
大家好,请问下MYSQL中使用LOAD功能的时候能不能跳过一些数据格式错误的行?
刚试了下,在使用MYSQL的LOAD语句时,哪怕数据文件中部分行的格式错误的话也会LOAD进去,只是报个WARNING而已。有没有什么参数指定如果数据行格式错误就跳过呢?
...全文
787
8
打赏
收藏
请问MYSQL使用LOAD时如何跳过数据格式错误的行
大家好,请问下MYSQL中使用LOAD功能的时候能不能跳过一些数据格式错误的行? 刚试了下,在使用MYSQL的LOAD语句时,哪怕数据文件中部分行的格式错误的话也会LOAD进去,只是报个WARNING而已。有没有什么参数指定如果数据行格式错误就跳过呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wh62592855
2011-10-23
打赏
举报
回复
[Quote=引用 6 楼 rucypli 的回复:]
试试set global sql_mode=traditional;
[/Quote]mysql> set session sql_mode=traditional;
Query OK, 0 rows affected (0.00 sec)
mysql> set global sql_mode=traditional;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from aa;
Query OK, 3 rows affected (0.00 sec)
mysql> load data local infile '/home/wanghai01/data/customer_20111022.dat' into table aa fields terminated by',' lines terminated by'\n';
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 1
mysql> show warnings;
+---------+------+--------------------------------------------+
| Level | Code | Message |
+---------+------+--------------------------------------------+
| Warning | 1261 | Row 1 doesn't contain data for all columns |
+---------+------+--------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from aa;
+------+------------+---------------------+
| id | name | ins_date |
+------+------------+---------------------+
| 11 | 2011-01-01 | NULL |
| 33 | xx | 2011-01-01 00:00:00 |
| 22 | hehe | 2011-01-01 00:00:00 |
+------+------------+---------------------+
3 rows in set (0.00 sec)
mysql>
谢谢回答,结果还是不行。
rucypli
2011-10-23
打赏
举报
回复
试试set global sql_mode=traditional;
rucypli
2011-10-23
打赏
举报
回复
TRADITIONAL
Make MySQL的行为象“传统”SQL数据库系统。该模式的简单描述是当在列中插入不正确的值时“给出错误而不是警告”。注释:一旦发现错误立即放弃INSERT/UPDATE。
wh62592855
2011-10-23
打赏
举报
回复
[Quote=引用 3 楼 nicenight 的回复:]
要不换个思路,导入完后把格式不对的数据找出来删除掉?
[/Quote]可能不太好定位那些错误的数据。
更重要的一点是,一般业务上有完整性的要求,也就是说,要么没有数据,要么数据就是一份正确的全量。不能说只把正确的那部分数据导入进去。
nicenight
2011-10-23
打赏
举报
回复
要不换个思路,导入完后把格式不对的数据找出来删除掉?
wh62592855
2011-10-23
打赏
举报
回复
依然是报WARNINGS,而不是ERROR。并且也插入了3行数据,只不过那两行缺列的内容为NULL。
wh62592855
2011-10-23
打赏
举报
回复
刚才试了下通过SQL_MODE来控制,发现还是不行。跟文档上描述的有出入,不知道是不是版本问题
mysql> select @@session.sql_mode;
+----------------------------------------------------------------+
| @@session.sql_mode |
+----------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> load data local infile '/home/wanghai01/data/customer_20111022.dat' into table aa fields terminated by',' lines terminated by'\n';
Query OK, 3 rows affected, 2 warnings (0.01 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 1
mysql>
mysql> select version();
+------------+
| version() |
+------------+
| 5.1.45-log |
+------------+
1 row in set (0.01 sec)
mysql
从txt文件导入数据并
跳过
空
行
或者
错误
行
创建表 CREATE TABLE IF NOT EXISTS `uid_pcode`( `uid` bigint, `pcode` VARCHAR(32) NOT NULL, PRIMARY KEY ( `uid` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8; /mnt/data1/uid_phone.txt文件内容...
mysql
-uroo
mysql
跳过
报错继续导入_
MySQL
导入数据 - osc_pwohted5的个人空间 - OSCHINA - 中文开源技术交流社区...
MySQL
导入数据本章节我们为大家介绍几种简单的
MySQL
导出的数据的命令。1、
mysql
命令导入
使用
mysql
命令导入语法格式为:
mysql
-u用户名 -p密码 < 要导入的数据库数据(runoob.sql)实例:#
mysql
-uroot -p...
mysql
远程
load
data_
mysql
导入数据
load
data infile用法整理
有
时
候我们需要将大量数据批量写入数据库,直接
使用
程序语言和Sql写入往往很耗
时
间,其中有一种方案就是
使用
MySql
Load
data infile导入文件的形式导入数据,这样可大大缩短数据导入
时
间。假如是从
MySql
客户端调用,...
MySQL
——
load
语句导入数据
最近在看有关SQL常用优化的方案,涉及到
使用
load
语句导入大量数据到数据库,按照官方的说法:
使用
load
语句要比
使用
insert语句将近快20倍的速度,平
时
开发中很少涉及导入大量数据,所以,平
时
都是
使用
insert语句导入...
mysql
load
命令_
mysql
中的
load
命令
使用
方法
使用
mysql
中的
load
命令,可以将txt 文件中的内容加载到数据库表中
使用
mysql
中的
load
命令,讲txt 文件中的内容加载到数据库表中,例如,创建table,名称是user,一个字段username;当前有db.txt文件,内容是以空格...
MySQL
56,678
社区成员
56,708
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章