本节目标

1.掌握MySQL复制表的几种方式
复制表,即备份表,给我们在操作表的时候,留一条后路

复制表的三种方式:
1.只复制表结构
create table tableName like someTable;

2.只复制表数据
create table tableName select * from someTable;

3.复制表结构+数据
create table tableName like someTable;
insert into tableName select * from someTable;

实战环节:

0.前期准备

创建一个t1表和索引

create table t1(id int not null auto_increment primary key,name varchar(50)
);

插入两条数据

insert into t1(name) values('张三');
insert into t1(name) values('李四');

假如索引建在名字上

create index idx_name on t1(name);

结果如下:

mysql> create table t1(-> id int not null auto_increment primary key,-> name varchar(50)-> );
Query OK, 0 rows affected (5.73 sec)mysql> insert into t1(name) values('张三');
Query OK, 1 row affected (0.54 sec)mysql> insert into t1(name) values('李四');
Query OK, 1 row affected (0.26 sec)mysql> create index idx_name on t1(name);
Query OK, 0 rows affected (2.34 sec)
Records: 0  Duplicates: 0  Warnings: 0

查看索引

show index from t1;
mysql> show index from t1\G;
*************************** 1. row ***************************Table: t1Non_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: idCollation: ACardinality: 2Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 2. row ***************************Table: t1Non_unique: 1Key_name: idx_nameSeq_in_index: 1Column_name: nameCollation: ACardinality: 2Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
2 rows in set (0.08 sec)ERROR:
No query specified

正题:

1.只复制表结构

create table t2 like t1;

mysql> create table t2 like t1;
Query OK, 0 rows affected (2.77 sec)

使用select * from t2;
发现数据真的没复制过来
mysql> select * from t2;
Empty set (0.17 sec)

索引和表结构如何呢?复制过来没有?我们看一看
show index from t2;
desc t2;
show create table t2;

mysql> show index from t2\G;
*************************** 1. row ***************************Table: t2Non_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: idCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 2. row ***************************Table: t2Non_unique: 1Key_name: idx_nameSeq_in_index: 1Column_name: nameCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
2 rows in set (0.01 sec)ERROR:
No query specifiedmysql> desc t2;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(50) | YES  | MUL | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (1.44 sec)mysql> show create table t2;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                      |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t2    | CREATE TABLE `t2` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`),KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)

我们发现,索引和表结构确确实实复制过来了。

2.仅复制数据

create table t3 select * from t1;

mysql> create table t3 select * from t1;
Query OK, 2 rows affected (1.15 sec)
Records: 2 Duplicates: 0 Warnings: 0

查看表结构,发现主键索引并没有复制过来

mysql> show create table t3;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                  |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t3    | CREATE TABLE `t3` (`id` int(11) NOT NULL DEFAULT '0',`name` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)

查看索引

mysql> show index from t3;
Empty set (0.05 sec)

查看表数据,发现已经复制成功

mysql> select * from t3;
+----+------+
| id | name |
+----+------+
|  1 | 张三 |
|  2 | 李四 |
+----+------+
2 rows in set (0.00 sec)

3.完整复制
步骤一:复制表结构create table t4 like t1;
步骤二:向新表插入数据insert into t4 select * from t1;

mysql> create table t4 like t1;
Query OK, 0 rows affected (0.82 sec)mysql> insert into t4 select * from t1;
Query OK, 2 rows affected (0.21 sec)
Records: 2  Duplicates: 0  Warnings: 0

查看建表语句

show create table t4;

查看索引

show index from t4;

查看数据

select * from t4;

结果如下:

mysql> show create table t4\G;
*************************** 1. row ***************************Table: t4
Create Table: CREATE TABLE `t4` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`),KEY `idx_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)ERROR:
No query specifiedmysql> show index from t4\G;
*************************** 1. row ***************************Table: t4Non_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: idCollation: ACardinality: 2Sub_part: NULLPacked: NULLNull:Index_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
*************************** 2. row ***************************Table: t4Non_unique: 1Key_name: idx_nameSeq_in_index: 1Column_name: nameCollation: ACardinality: 2Sub_part: NULLPacked: NULLNull: YESIndex_type: BTREEComment:
Index_comment:Visible: YESExpression: NULL
2 rows in set (0.03 sec)ERROR:
No query specifiedmysql> select * from t4;
+----+------+
| id | name |
+----+------+
|  1 | 张三 |
|  2 | 李四 |
+----+------+
2 rows in set (0.00 sec)

全部复制过来了

MySQL复制表3种方式相关推荐

  1. 【运维面试】面试官: 你能说一下MySQL主从的几种方式吗?

    一般面试官问这个问题,都伴随着另外一个问题,叫:小伙子,你说一下MySQL主从原理? 当你回答完原理之后,就会问到关于MySQL主从的几种方式的问题. 一般我们的主从同步,分为:半同步复制和异步复制: ...

  2. django 不用自带的mysql_21_django配置使用mysql数据库的两种方式

    配置django项目使用mysql数据库的两种方式 1. 直接在settings.py 文件中添加数据库配置信息 # 配置数据库的第一种方式 DATABASES = { 'default': { 'E ...

  3. php连接mysql_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  4. commvault备份mysql,备份MySQL数据库的4种方式

    备份MySQL数据库的4种方式 前言我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, ...

  5. php连接虚拟机中mysql数据库吗,PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MysqL数据库的三种方式(MysqL.MysqLi.pdo),结合实例形式分析了PHP基于MysqL.MysqLi.pdo三种方式连接MysqL数据库的相关操作技巧与 ...

  6. php 复制mysql数据库_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  7. .net mysql和php mysql数据库连接_浅谈PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  8. mysql排序的四种方式

    mysql排序的四种方式 第一种,默认排序 第二种,field函数排序 第三种,条件排序 第四种,多重条件排序 第一种,默认排序 按照 order by 字段1 desc/asc, 字段2 desc/ ...

  9. 连接MySQL数据库的两种方式

    连接MySQL数据库的两种方式 一.通过sqlyog连接 二.通过命令行连接数据库: 命令行连接! 1.mysql -u root -p123456 #连接数据库2.update mysql.user ...

最新文章

  1. 你不得不看的六篇知识图谱落地好文
  2. 6 获取数组中最小值_C语言每日一练8——数组中最大值和最小值
  3. python数据类型和数据运算
  4. @Value和Hibernate问题
  5. java pdf无法加载_java - 试图使用iText7合并来合并pdf,但是当我打开最终的合并pdf时,它说无法加载pdf文档 - SO中文参考 - www.soinside.com...
  6. 内核参数 linux dd,Linux dd命令使用示例
  7. CoreAnimation-CABasicAnimation
  8. c语言输出菱形for循环_C语言如何输出菱形
  9. python pywifi模块——暴力破解wifi
  10. oracle 汉字转五笔码,芈月传的芈字怎么打?用五笔拆解并输入方法图解
  11. Java开发的文字RPG游戏,代码开源
  12. 南京大学计算机学类,南京大学计算机专业厉害吗?
  13. iOS自动化测试之ipa安装失败的日志分析
  14. html网页制作比赛要求,校园网页设计大赛活动方案
  15. 论中职计算机基础课程授课方法,浅论中职《计算机基础》的教法与学法
  16. 在Ubuntu 18.04上用源码安装GVM 20.08
  17. 获取HTML中文本框的值并进行比较两者的大小
  18. chrome android 导航,将 Chrome for Android 的地址栏移动到屏幕下方[Android]
  19. 南阳农运会于2012年9月16日开幕
  20. 数字化转型大咖群研讨实录20210506

热门文章

  1. 1.JVM与Java体系结构
  2. 美国俚语(16-20)
  3. mysql对姓名、手机号、身份证号做脱敏处理
  4. 百度AI Access Token过期处理
  5. 智慧物流成新蓝海 国内包裹总量将超300亿个
  6. 中学学校不设立计算机课,中学信息技术课教学现状与改进策略
  7. package.json和package-lock.json到底是什么?
  8. mysql 权限命令 revoke_MySQL删除用户权限(REVOKE)
  9. 25岁,人生规划(职场第二个三年)(实践)
  10. python和C语言混合编程实例