不知道大家之前对类似MySQL两种原生数据导入方式有何区别及用法的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL两种原生数据导入方式有何区别及用法你一定会有所收获的。
MySQL中有2种原生的数据导入方式,负载和来源。先看下两种方式的过程和特点。
,
为演示方便,使用测试表tb1,表结构如下:
mysql>显示创建表tb1 \ G
* * * * * * * * * * * * * * * * * * * * * * * * * * * 1。行* * * * * * * * * * * * * * * * * * * * * * * * * * *
,,,,,,表:tb1
创建表:创建表“tb1”(
,“id 'bigint(20)无符号NOT NULL AUTO_INCREMENT,
,“用户名'varchar (20) NOT NULL默认& # 39;& # 39;,
,的年龄'tinyint(3)无符号NOT NULL默认& # 39;0 & # 39;,
,主键(id),
,唯一键'uniq_username”(“用户名”)
)引擎=InnoDB默认字符集=utf8mb4
1行组(0.00秒)
,
表中有若干测试数据:
mysql>SELECT * FROM tb1;
+ - - - + - - - - - - - - - - - +——+
|用户名年龄| | | id
+ - - - - - - - - - - - - - - - - +——+
|,1 | aa ,,,,| | 22日
|,2 | bb ,,,,20 | |
|,3 | cc ,,,,24 | |
|,4 | dd ,,,,20 | |
+——+ + - - - - - - - - - - - - - - - - - +
4行组(0.00秒)
,
将tb1表中数据导出成CSV格式的文件tb1.csv:
mysql>SELECT * FROM tb1 OUTFILE"/tmp/tb1.csv"& # 39;字段终止,& # 39;选择封闭的# 39;“& # 39;行终止由& # 39;\ n # 39;;
查询好,4行影响(0.00秒)
,
tb1.csv的内容是:
1,“aa", 22日
2,“bb", 20
3,“cc", 24
4,“dd", 20
,
将tb1表截断后,负载导入:
mysql>截断表tb1;
查询好,0行影响(0.02秒)
,
mysql——登录路径=mytest测试——执行=癓OADDATA INFILE & # 39;/tmp/tb1.csv& # 39;tb1字段到表被& # 39;终止,& # 39;OPTIONALLYENCLOSED & # 39; \“& # 39;行终止由& # 39;\ n # 39;“
,
为测试报错,把tb1。csv文件修改为如下(第1、4行):
9日“ff", 22日
2,“bb", 20
3,“cc", 24
14日“gg", 25
,
负载导入出错时,会终止导入过程,提示出错位置和原因,但这个位置行并不能直接对应到原文件中(应在2行)为:
mysql——登录路径=mytest测试——执行=癓OADDATA INFILE & # 39;/tmp/tb1.csv& # 39;tb1字段到表被& # 39;终止,& # 39;OPTIONALLYENCLOSED & # 39; \“& # 39;行终止由& # 39;\ n # 39;“
错误1062(23000)1号线:重复条目& # 39;2 & # 39;关键& # 39;主要# 39;
,
查看tb1表的数据,没有变化:
mysql>SELECT * FROM tb1;
+ - - - + - - - - - - - - - - - +——+
|用户名年龄| | | id
+ - - - - - - - - - - - - - - - - +——+
|,1 | aa ,,,,| | 22日
|,2 | bb ,,,,20 | |
|,3 | cc ,,,,24 | |
|,4 | dd ,,,,20 | |
+——+ + - - - - - - - - - - - - - - - - - +
4行组(0.00秒)
,
这里可看的出,负载导入数据时,遇到错误会立刻终止,提示错误的位置和原因,出错之前的数据也不会导入。
,
导入速度如何控制呢,暂无办法;另外一点、负载导入数据时,要指定自增主键值,这在数据表中已有数据的情况下,可能会遇到麻烦。
,
接着看下源的表现,将tb1表中数据转储成SQL文件tb1.sql(这里只需要插入语句):
, mysqldump——登录路径=mytest add-drop-database——skip-add-drop-table add-drop-trigger——complete-insert default-character-set=utf8mb4——事件——skip-extended-insert——力——hex-blob no-create-db——no-create-info——快——结果文件=tb1。sql例程,单独的事务——触发器测试tb1
,
tb1。sql的内容是:
插入“tb1”(“id”,“用户名”,“年龄”)值(1 & # 39;aa # 39;, 22);
插入“tb1”(“id”,“用户名”,“年龄”)值(2 & # 39;bb # 39;, 20);
插入“tb1”(“id”,“用户名”,“年龄”)值(3 & # 39;cc # 39;, 24);
插入“tb1”(“id”,“用户名”,“年龄”)值(4日& # 39;dd # 39;, 20);
,
将tb1表截断后,源导入:
mysql>截断表tb1;
查询好,0行影响(0.02秒)
,
mysql——登录路径=mytest测试——执行=霸?tmp/tb1.sql"
,
为测试报错,把tb1。sql文件修改为如下(第1、4行):
插入“tb1”(“id”,“用户名”,“年龄”)值(9日& # 39;ff # 39;, 22);
插入“tb1”(“id”,“用户名”,“年龄”)值(2 & # 39;bb # 39;, 20);
插入“tb1”(“id”,“用户名”,“年龄”)值(3 & # 39;cc # 39;, 24);