mysql 复制表结构和数据实例代码

所属分类: 数据库 / Mysql 阅读数: 499
收藏 0 赞 0 分享

在mysql数据库开发中,我们有时候需要复制或拷贝一张表结构和数据到例外一张表,这个时候我们可以使用create ... select ... from语句来实现,本文章向大家介绍mysql复制表结构和数据一个简单实例,

 比如现在有一张表,我们要将该表复制一份,以备以后使用,那么如何使用mysql语句来实现呢?其实我们可以直接使用create ... select ... from语句来实现,具体实现方法请看下面实例。 

我们先来创建一张Topic表,创建Topic表的SQL语句如下:

mysql> CREATE TABLE Topic(
  ->  TopicID   SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  ->  Name    VARCHAR(50) NOT NULL,
  ->  InStock   SMALLINT UNSIGNED NOT NULL,
  ->  OnOrder   SMALLINT UNSIGNED NOT NULL,
  ->  Reserved  SMALLINT UNSIGNED NOT NULL,
  ->  Department ENUM('Classical', 'Popular') NOT NULL,
  ->  Category  VARCHAR(20) NOT NULL,
  ->  RowUpdate  TIMESTAMP NOT NULL
  -> );

向Topic表中插入数据:

mysql> INSERT INTO Topic (Name,     InStock, OnOrder, Reserved, Department,  Category) VALUES
  ->          ('Java',     10,   5,    3,    'Popular',  'Rock'),
  ->          ('JavaScript',  10,   5,    3,    'Classical', 'Opera'),
  ->          ('C Sharp',    17,   4,    1,    'Popular',  'Jazz'),
  ->          ('C',       9,    4,    2,    'Classical', 'Dance'),
  ->          ('C++',      24,   2,    5,    'Classical', 'General'),
  ->          ('Perl',     16,   6,    8,    'Classical', 'Vocal'),
  ->          ('Python',    2,    25,   6,    'Popular',  'Blues'),
  ->          ('Php',      32,   3,    10,    'Popular',  'Jazz'),
  ->          ('ASP.net',    12,   15,   13,    'Popular',  'Country'),
  ->          ('VB.net',    5,    20,   10,    'Popular',  'New Age'),
  ->          ('VC.net',    24,   11,   14,    'Popular',  'New Age'),
  ->          ('UML',      42,   17,   17,    'Classical', 'General'),
  ->          ('www.java2s.com',25,   44,   28,    'Classical', 'Dance'),
  ->          ('Oracle',    32,   15,   12,    'Classical', 'General'),
  ->          ('Pl/SQL',    20,   10,   5,    'Classical', 'Opera'),
  ->          ('Sql Server',  23,   12,   8,    'Classical', 'General');
Query OK, 16 rows affected (0.00 sec)
Records: 16 Duplicates: 0 Warnings: 0

现在我们要将这张表复制一份,具体操作如下:

mysql> CREATE TABLE Topic2
  -> (
  ->  TopicID   SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  ->  Name    VARCHAR(50) NOT NULL,
  ->  InStock   SMALLINT UNSIGNED NOT NULL,
  ->  OnOrder   SMALLINT UNSIGNED NOT NULL,
  ->  Reserved  SMALLINT UNSIGNED NOT NULL,
  ->  Department ENUM('Classical', 'Popular') NOT NULL,
  ->  Category  VARCHAR(20) NOT NULL,
  ->  RowUpdate  TIMESTAMP NOT NULL
  -> )
  -> SELECT *
  -> FROM Topic

这样表Topic2和Topic表不仅拥有相同的表结构,表数据也是一样的了。

例外,如果我们只需要复制表结构,不需要复制数据,也可以使用create like来实现:

create table a like users;

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

MySQL中distinct和count(*)的使用方法比较

这篇文章主要针对MySQL中distinct和count(*)的使用方法比较,对两者之间的使用方法、效率进行了详细分析,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Mysql命令大全(完整版)

这篇文章主要介绍了Mysql命令大全,分享的命令都是最基本的,推荐给大家,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Mysql常用命令汇总

这篇文章主要介绍了Mysql常用命令,都是mysql数据库日常最基本的操作命令,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

MySQL最基本的命令使用汇总

这篇文章为大家分享了MySQL最基本的命令使用汇总,MySQL最基本的命令使用,包括如何正确连接MySQL(和PHP搭配之最佳组合),修改密码与增加新用户等相关内容的描述,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

mysql命令行如何操作

这篇文章主要介绍了mysql命令行如何操作,还为大家分享了mysql添加环境变量的方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

MySQL常用命令 MySQL处理数据库和表的命令

这篇文章主要介绍了MySQL常用命令,尤其是针对MySQL处理数据库和表的命令进行学习,特别适用于新手,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Mysql基础入门 轻松学习Mysql命令

这篇文章主要是Mysql基础入门教程,教大家如何轻松学习Mysql命令,并熟练掌握Mysql命令,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

解决Mysql服务器启动时报错问题的方法

这篇文章主要介绍了解决Mysql服务器启动时报错问题的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

MySql命令实例汇总

这篇文章主要介绍了MySql命令,结合实例分析了MySQL数据库的创建、连接及增删改查等各种常用操作的使用方法与相关注意事项,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下实现MySQL数据备份和恢复的命令使用全攻略

这篇文章主要介绍了Linux下实现MySQL数据备份和恢复的命令使用全攻略,包括使用Mysqldump和LVM快照以及xtrabackup三种方法,倾力推荐!需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多