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

在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
复制表结构
mysql多实例主从复制、php mysql 代码实例、mysql 复制表结构、mysql 复制数据库结构、mysql如何复制表结构,以便于您获取更多的相关知识。

时间: 2024-09-13 01:29:10

mysql 复制表结构和数据实例代码_Mysql的相关文章

MySQL 复制表详解及实例代码

MySQL 复制表详解 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的. 本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下: 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等. 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构. 如果你想复制表的内容,

MySQL复制表结构 表数据sql语句总结

复制整个表  代码如下 复制代码 create table new_table select * from old_table; 复制表,不复制数据  代码如下 复制代码 create table new_table select * from old_table where 0; 主键,索引,自增等其他额外特征不会被带到新表中.这点和其他的数据库产品类似. 上面为核心两句了 1.MySQL复制表结构及数据到新表  代码如下 复制代码 CREATE TABLE `新表` SELECT * FRO

Mysql复制表结构、表数据的方法_Mysql

本文给大家分享了好几种复制表结构.表数据的示例介绍,具体详情请看下文吧. 1.复制表结构及数据到新表 CREATE TABLE 新表SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除. 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_increment)等属性.需要自己用"alter"添加,而且容易搞错. 2.只复制表结构到新表 CREAT

oracle、mysql、sybase和sqlserver复制表结构和数据

Sql Server(sybase): 1.复制表结构: 新建表student2,并且结构同表syn_xj_student一致.Sql语句如下: select * into syn_xj_student2 from syn_xj_student where 1=2 2.复制表数据,并排除俩表中相同的数据: insert into syn_xj_student2 select * from syn_xj_student where f_id not in (select f_id from syn

MySQL与Mongo简单的查询实例代码_Mysql

首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多)直接切入主题 我想查询的内容是这样的:分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数 举这个实例来试试用MySQL和mongodb分别写一个查询 首先我们先做一些准备工作 MySQL的数据库结构如下 CREATE TABLE `new_schema`.`demo` ( `id` INT NOT NULL, `person` VARCHAR(45) NOT NULL, `score` VAR

输出MySql数据库表结构的PHP页面代码

经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这是一个漂亮的PHP页面,可以自动输出MySql数据库所有表结构,大大方便了文档的编写工作,也同时非常方便编码的时候进行查询.当然在设计MySql数据库表和字段的时候详细填写表和字段的备注,这是非常好的习惯,对这个网页的输出也是最佳效果的. <!DOCTYPE html PUBLIC "-//W

MySQL 分表优化方法与实例代码

1.试验PROCEDURE. DELIMITER $$ DROP PROCEDURE `t_girl`.`sp_split_table`$$ CREATE PROCEDURE `t_girl`.`sp_split_table`() BEGIN declare done int default 0; declare v_user_name varchar(20) default ''; declare v_table_name varchar(64) default ''; -- Get all

sql复制表结构和数据的实现方法_MsSql

SQL SERVER中使用SELECT - INTO语句 按照使用场合可以分为以下几类: 1. 实现全表备份:如:SELECT * INOT t1 FROM titles 2. 备份表的一部分列(不写*而写出列的列表)或一部分行(加WHERE条件) 如: SELECT title_id,title,price INTO t2 FROM titles-部分列 SELECT * INTO t2 FROM titles WHREE price>10 –部分行 SELECT title_id,title

Oracle与Sql Server复制表结构及数据的语句

1.Oracle create table 新表名 AS SELECT * FROM 源表名 2.Sql Server SELECT * into 新表名 from 源表名 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/