200 ? "200px" : this.width)!important;}
-->

介绍

有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便捷的方法。

例:

CREATE TABLE tb_base(
id INT NOT NULL PRIMARY KEY,
name VARCHAR(10),
KEY ix_name (name))
ENGINE='MyISAM',CHARSET=utf8,COMMENT 'a' ;
insert into tb_base() values(1,'a'),(2,'b');

一、LIKE方法

like方法能一模一样的将一个表的结果复制生成一个新表,包括复制表的备注、索引、主键外键、存储引擎等。

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }

1.复制表

CREATE  TABLE IF NOT EXISTS tb_base_like (LIKE tb_base); 

2.查看表

可以看到新复制的表和原表完全一致,但是不复制数据。

二、SELECT方法

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
SELECT ... (Some valid select or union statement)

 1.复制表

CREATE  TABLE IF NOT EXISTS tb_base_select SELECT * FROM tb_base; 

2.查看表

select的方法值复制字段属性,其它的主键、索引、表备注、存储引擎都没有复制

三、区别

like方法:like方法其实是专门复制表结构的方法,但是它只复制表的结构和相关属性并不复制数据

select方法:严格来讲select方法不能理解成复制表结构的方法,其实它只是执行了一个select查询语句,所以复制的结果只包含了select的字段和数据,其它表属性都有系统的配置文件决定;包括存储引擎、默认字符集等都是有系统的默认配置所决定。

总结

所以真正的表结构复制方法是LIKE方法,如果不需要考虑表原本的属性包括存储引擎、备注、主键、索引等那么select复制方法是个不错的方法并且还能连同数据一起复制。

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

MySQL 复制表结构的更多相关文章

  1. MySQL复制表结构表数据

    MySQL复制表结构 表数据 1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete ...

  2. Mysql 复制表结构 及其表的内容

    顺便转一下Mysql复制表结构.表数据的方法: 1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们 ...

  3. mysql 复制表结构、表数据的方法

    From: http://blog.163.com/yaoyingying681@126/blog/static/109463675201191173221759/ MySQL 添加列,修改列,删除列 ...

  4. mysql复制表结构及检查表、存储过程是否存在

    mysql命令行复制表结构的方法: 1.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2  或者 CREATE TABLE 新表 LIKE 旧表 ...

  5. 【数据库】MySQL 复制表结构

    介绍 有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便捷的方法. 例: CREATE TABLE tb_base( id INT NOT NULL PRIMARY KE ...

  6. MySQL复制表结构和内容到另一张表(转)

    MySQL不要看它小,一个开源的产物,要学习它的东西真的很多.而它的一切是SQL Server无法比拟的. 复制表结构及数据到新表 create table 新表 select * from 旧表 只 ...

  7. mysql复制表结构和表数据

    我们知道,在SQL Server中,如果要复制表结构和表数据的话,可以使用select into语句. select * into yanggb1 from yanggb; 但是在MySQL中是不支持 ...

  8. mysql 复制表结构(包括索引等)、表内容

    =============================================== 2019/7/16_第1次修改                       ccb_warlock == ...

  9. mysql复制表结构,复制表数据

    MYSQL 复制表 show create table table_name:查看表的建表语句.该语句包含了原数据表的结构,索引等. 使用 SHOW CREATE TABLE 命令获取创建数据表(CR ...

随机推荐

  1. AOJ 0033 Ball【DFS】

    有一个筒,从A口可以放球,放进去的球可通过挡板DE使其掉进B管或C管里,现有带1-10标号的球按给定顺序从A口放入,问是否有一种控制挡板的策略可以使B管和C管中的球从下往上标号递增. 输入: 第一行输 ...

  2. How to configure security of ActiveMQ ?

    Terms {activemq.home}: The ActiveMQ installation folder. How to configure ActiveMQ to use JAAS Authe ...

  3. iTunes使用总结

    UDID查询 将设备连接至电脑,打开iTunes至设备摘要页面,鼠标点击"序列号"区域切换显示UDID

  4. rake deploy ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to解决方法

    需要修改项目中Rakefile文件的内容: 原始内容:system "git push origin #{deploy_branch}" 改后内容:system "git ...

  5. 文档:网络通讯包结构(crc校验,加解密)

    一直想把这个流程整理一下. 包结构: 包 对(datacrc+protoID+dataSize)组成的byte[] 进行crc计算而得到 对(数据内容)进行crc计算而得到 协议号 数据内容的字节长度 ...

  6. xml.etree.ElementTree对CDATA的输出

    xml.etree.ElmentTree不支持CDATA 的输出,但是支持Comment的输出.由于在项目中需要输出带有CDATA块的XML文本,参考Comment的做法,修改ElmentTree中的 ...

  7. mongo遍历表

    $mongo = new MongoClient("mongodb://192.168.8.189:27017"); $collectObj = $mongo->select ...

  8. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  9. iOS Block理解

    以前看到Block觉得也没什么,不就是类似函数的东西,这东西在C#里就是委托,在Java里就是块,有什么稀奇的.但看到一点进阶的内容后,发现这个东西确实有用. 所以做下总结. 一.块的基本用法 块的语 ...

  10. BOM对象有哪些:

    BOM对象有哪些: 1.window对象 ,是JS的最顶层对象,其他的BOM对象都是window对象的属性: 2.document对象,文档对象: 3.location对象,浏览器当前URL信息: 4 ...