数据库表内导入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';

补充说明:

  1. CHARACTER SET utf8:因为有中文数据,所以指定utf-8编码。

  2. FIELDS TERMINATED BY ‘,’:csv文件以 ‘,’ 分隔数据。

  3. IGNORE 1 LINES:跳过原始文件中的第一行表头数据。如果不写,表头也会被当作数据导入。如果要跳过从头开始的多行,可以改变LINES前面的数字。

  4. 要导入数据的字段放在最后,将字段顺序和原始文件里的顺序保持一致。

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相关推荐

  1. 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据

    前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...

  2. Navicat创建数据库表 、导入sql文件,生成表结构

    Navicat创建数据库表 .导入sql文件,生成表结构 1.打开Navicat 2.远程连接mysql连接 3.创建数据库 4.导入sql文件 5.生成表结构 1.打开Navicat 2.远程连接m ...

  3. oracle数据库表的导入导出cmd命令大全

    在实际的项目开发中经常会遇到导入导出oracle数据库中的表,以下是常用的一些cmd命令: 一.数据表的导出 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daoch ...

  4. 数据库-表中导入数据-insert

    表中导入数据 在表中导入数据的方式有两种 第一种:将以上数据整理成SQL语句,insert into pet.... 第二种:通过加载文件的方式将数据导入到表中 1.创建一个pet.txt的文件(注: ...

  5. c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...

    向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...

  6. 打乱mysql数据顺序_打乱数据库表内的数据顺序

    [问题] What is a best way to shuffle a database column using pl/sql. how to shuffle a database column ...

  7. mysql数据库表的导入导出

    MySQL写入数据通常用insert语句,如 复制代码 代码如下: insert into person values(张三,20),(李四,21),(王五,70)-; 但有时为了更快速地插入大批量数 ...

  8. oracle表复制为mysql表_oracle 将数据库的表复制到另一个数据库表内

    将数据库A中的表sys_role复制到数据库B中 在数据库b中的SQL工作表写如下代码: 第一步:建立链接 CREATE database link A //数据库名称 CONNECT to text ...

  9. Linux下数据库表结构导入导出

    1.导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的脚本名为db.sql) mysqldump -h(指向的IP地址) -P(端口) -uroot -pdbpas ...

最新文章

  1. mysql每日备份_Linux下如何实现Mysql数据库每天自动备份定时备份
  2. mysql 主从 网络异常_mysql主从常见异常问题解决
  3. 页面中嵌入了Flash时滚动条问题
  4. 函数计算: 让小程序开发进入 Serverless 时代
  5. 2016-10-26随笔
  6. FLV协议5分钟入门浅析
  7. python爬取新闻网站内容findall函数爬取_Python爬取新闻网标题、日期、点击量
  8. 【Python开发】Python中的class继承
  9. 【英语学习】【Level 08】U05 Better option L1 Message sent
  10. mysql 判断 字母大写_MySQL中查询时对字母大小写的区分
  11. 河南大学计算机期末考试题,河南大学计算机与信息工程学院2008期末C#试题
  12. iOS开发之保存照片到自己创建的相簿
  13. 报表统计(六) 访问数据库
  14. Java IO 创建文件解决文件名重复问题
  15. 《涂抹Oracle—三思笔记之一步一步学Oracle》看书笔记(序言)
  16. 数据库(mysql、oracle、sqlserver)单表sqlserver
  17. vue 创建图片坐标点_Vue Echarts 显示地图且根据坐标设置标注点
  18. creo绘图属性模板_creo工程图模板_Creo工程图的优越性总结(仅供参考),来自网友与君共享...
  19. SQL Server 2012 SQLEXPRESS 无法通过IP连接访问问题的解决
  20. 2021年西式面点师(中级)考试题库及西式面点师(中级)模拟试题

热门文章

  1. hub_thread
  2. 314-Leetcode 堆排序
  3. 用rpm安装卸载软件
  4. 准备客串一回Java讲师
  5. Nginx学习笔记——上篇
  6. 【03yy and one】
  7. 2021前端年终总结|纵使前方不易,独善其身,继续前行。。。
  8. 怎样微信扫描二维码跳转页面,H5页面在微信中下载APP的实现方式
  9. 阿里MNS、OSS 和亚马逊 SQS、S3对比
  10. Fastdfs 卸载