数据库表内导入txt
数据库表内导入txt
oracle数据库表内导入txt
首先准备TXT格式的文件,(可以从数据库导出)
1:准备ctl文件(导入字段映射以及字符集设置)
2:准备shell文件,执行导入命令(传入文件路径,ctl)
3: 调用shell,导入
mysql数据库表内导入txt
1:准备txt文件
将空值用\N代替,每行数据内的分隔符为\t,行与行之间换行符为\r\n。然后将txt文件存放到/var/lib/mysql-files路径下。
2:准备数据表
mysql> use testdb2;
mysql> create table tbl_pet (-> name varchar(10),-> owner varchar(10),-> species varchar(10),-> sex varchar(1),-> birth date,-> death date)CHARSET = utf8;
3:导入数据
mysql> LOAD DATA INFILE '/var/lib/mysql-files/pet.txt' INTO TABLE tbl_pet LINES TERMINATED BY '\r\n';
mysql> select * from tbl_pet;
+----------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Fang | Benny | dog | m | 1990-08-27 | NULL |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+--------+---------+------+------------+------------+
8 rows in set (0.00 sec)
错误小结:
#Issue1:ERROR 1148 (42000): The used command is not allowed with this MySQL version
错误语句:mysql> LOAD DATA LOCAL INFILE ‘/var/lib/mysql/pet.txt’ INTO TABLE
tbl_pet;出错原因:多了一个LOCAL关键词。当文件在客户机端时要写LOCAL,在服务器端时不用写。我的txt文件是和MySQL数据库在同一虚拟机上的,所以不用加LOCAL。
#Issue2:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
出错原因:MySQL设置了secure-file-priv属性对应的路径,当数据文件从其他路径导入时便会报错。
解决办法:查看secure-file-priv指定路径并把数据文件放进去。参考https://blog.csdn.net/FallingU/article/details/75675220
mysql> show variables like '%secure%';
+--------------------------+-----------------------+
| Variable_name | Value |
+--------------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+--------------------------+-----------------------+
#Issue3:ERROR 1292 (22007): Incorrect date value: ‘’ for column ‘death’ at row 1
出错原因:一开始直接把原始表格里的数据复制到txt文件里没有处理,空值的地方是空的,不符合MySQL里空值的表示方式,所以报错。
解决办法:将空值用\N代替。参考https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
#Issue4:使用 LOAD DATA INFILE ‘/var/lib/mysql-files/pet.txt’ INTO TABLE tbl_pet; 导入数据仍然失败
错误提示:’ for column ‘death’ at row 1 date value: 'N
出错原因:fields terminated by 默认值是’\t’,lines terminated by
默认值是’\n’,而Windows上的文件换行是’\r\n’,Mac OS X是’\r’。解决办法:加上LINES TERMINATED BY ‘\r\n’,如下:
mysql> LOAD DATA INFILE '/var/lib/mysql-files/pet.txt' INTO TABLE tbl_pet LINES TERMINATED BY '\r\n';
补充说明:
CHARACTER SET utf8:因为有中文数据,所以指定utf-8编码。
FIELDS TERMINATED BY ‘,’:csv文件以 ‘,’ 分隔数据。
IGNORE 1 LINES:跳过原始文件中的第一行表头数据。如果不写,表头也会被当作数据导入。如果要跳过从头开始的多行,可以改变LINES前面的数字。
要导入数据的字段放在最后,将字段顺序和原始文件里的顺序保持一致。
csv
https://blog.csdn.net/u013378642/article/details/81220809?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.edu_weight
数据库表内导入txt相关推荐
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据
前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...
- Navicat创建数据库表 、导入sql文件,生成表结构
Navicat创建数据库表 .导入sql文件,生成表结构 1.打开Navicat 2.远程连接mysql连接 3.创建数据库 4.导入sql文件 5.生成表结构 1.打开Navicat 2.远程连接m ...
- oracle数据库表的导入导出cmd命令大全
在实际的项目开发中经常会遇到导入导出oracle数据库中的表,以下是常用的一些cmd命令: 一.数据表的导出 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daoch ...
- 数据库-表中导入数据-insert
表中导入数据 在表中导入数据的方式有两种 第一种:将以上数据整理成SQL语句,insert into pet.... 第二种:通过加载文件的方式将数据导入到表中 1.创建一个pet.txt的文件(注: ...
- c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...
向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...
- 打乱mysql数据顺序_打乱数据库表内的数据顺序
[问题] What is a best way to shuffle a database column using pl/sql. how to shuffle a database column ...
- mysql数据库表的导入导出
MySQL写入数据通常用insert语句,如 复制代码 代码如下: insert into person values(张三,20),(李四,21),(王五,70)-; 但有时为了更快速地插入大批量数 ...
- oracle表复制为mysql表_oracle 将数据库的表复制到另一个数据库表内
将数据库A中的表sys_role复制到数据库B中 在数据库b中的SQL工作表写如下代码: 第一步:建立链接 CREATE database link A //数据库名称 CONNECT to text ...
- Linux下数据库表结构导入导出
1.导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的脚本名为db.sql) mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpas ...
最新文章
- mysql每日备份_Linux下如何实现Mysql数据库每天自动备份定时备份
- mysql 主从 网络异常_mysql主从常见异常问题解决
- 页面中嵌入了Flash时滚动条问题
- 函数计算: 让小程序开发进入 Serverless 时代
- 2016-10-26随笔
- FLV协议5分钟入门浅析
- python爬取新闻网站内容findall函数爬取_Python爬取新闻网标题、日期、点击量
- 【Python开发】Python中的class继承
- 【英语学习】【Level 08】U05 Better option L1 Message sent
- mysql 判断 字母大写_MySQL中查询时对字母大小写的区分
- 河南大学计算机期末考试题,河南大学计算机与信息工程学院2008期末C#试题
- iOS开发之保存照片到自己创建的相簿
- 报表统计(六) 访问数据库
- Java IO 创建文件解决文件名重复问题
- 《涂抹Oracle—三思笔记之一步一步学Oracle》看书笔记(序言)
- 数据库(mysql、oracle、sqlserver)单表sqlserver
- vue 创建图片坐标点_Vue Echarts 显示地图且根据坐标设置标注点
- creo绘图属性模板_creo工程图模板_Creo工程图的优越性总结(仅供参考),来自网友与君共享...
- SQL Server 2012 SQLEXPRESS 无法通过IP连接访问问题的解决
- 2021年西式面点师(中级)考试题库及西式面点师(中级)模拟试题