顺便转一下Mysql复制表结构、表数据的方法:

1、复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。

2、只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表

3、复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表

4、复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

5、可以将表1结构复制到表2
SELECT * INTO 表2 FROM 表1 WHERE 1=2

6、可以将表1内容全部复制到表2
SELECT * INTO 表2 FROM 表1

7、show create table 旧表;
这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表

8、mysqldump

用mysqldump将表dump出来,改名字后再导回去或者直接在命令行中运行

mysql 中如何在同一张表中复制记录

例子1 复制完全相同的记录(条件是表结构中没有auto_increment,和uniq字段)
mysql> select * from president;
+------------+---------------+--------+---------------------+-------+------------+------------+
| last_name  | first_name    | suffix | city                | state | birth      | death      |
+------------+---------------+--------+---------------------+-------+------------+------------+
| Washington | George        | NULL   | Wakefield           | VA    | 1732-02-22 | 1799-12-14 |
| Adams      | John          | NULL   | Braintree           | MA    | 1735-10-30 | 1826-07-04 |
| Jefferson  | Thomas        | NULL   | Albemarle County    | VA    | 1743-04-13 | 1826-07-04 |
| Madison    | James         | NULL   | Port Conway         | VA    | 1751-03-16 | 1836-06-28 |

mysql> desc president;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| last_name  | varchar(15) | NO   | MUL | NULL    |       |
| first_name | varchar(15) | NO   |     | NULL    |       |
| suffix     | varchar(5)  | YES  |     | NULL    |       |
| city       | varchar(20) | NO   |     | NULL    |       |
| state      | varchar(2)  | NO   |     | NULL    |       |
| birth      | date        | NO   |     | NULL    |       |
| death      | date        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
在这种情况下要在表中复制一条Washington  George 的记录,输入以下命令即可:

mysql> insert into president select * from president where last_name='Washington';

例子2:新增部分字段相同的记录

mysql> select * from manager;
+----+-------------+-------+-------------+----------+------------+---------------------+
| id | enable_flag | types | account     | password | location   | reg_date            |
+----+-------------+-------+-------------+----------+------------+---------------------+
|  1 |           1 |     1 | abcd        | 1234567  |            | 0000-00-00 00:00:00 |
| 13 |           1 |     2 | anonymous   | 654123   | 0100000000 | 2003-06-30 17:29:04 |

其表结构如下:

mysql> desc manager;
+-------------+-------------+------+-----+---------------------+----------------+
| Field       | Type        | Null | Key | Default             | Extra          |
+-------------+-------------+------+-----+---------------------+----------------+
| id          | int(4)      | NO   | PRI | NULL                | auto_increment |
| enable_flag | smallint(2) | NO   |     | 0                   |                |
| types       | smallint(2) | NO   |     | 0                   |                |
| account     | varchar(50) | NO   | UNI |                     |                |
| password    | varchar(50) | NO   |     |                     |                |
| location    | varchar(10) | NO   |     |                     |                |
| reg_date    | datetime    | NO   |     | 0000-00-00 00:00:00 |                |
------------+-------------+------+-----+---------------------+----------------+
若想通过新增一条和manager 表中的anonymous这条记录,其它字段内容相同,但名字不同的记录(account为test)。则得用以下方法:
因为manager表的 id字段是auto_increment,而且account字段是具有唯一性的(UNI).所以我们得具体指定这两个字段的值。

mysql>  insert into manager select '22',enable_flag,types,'test',password, location,reg_date from manager where account='anonymous';

Mysql 复制表结构 及其表的内容的更多相关文章

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

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

  2. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  3. 【MySQL】MySQL复制表结构、表数据

    平常,复制.备份表,一般都直接操作IDE完成.但有时,一些初始化数据的脚本,在操作数据前,最好备份下操作表的结构.数据,不至于出错了被置于为难的境地. 所以复制表结构.表数据的语句就派上用场. > ...

  4. oracle 快速复制表结构、表数据

      1.情景展示 根据现有的表,建一个新的表,要求:新表的结构与原有表的表结构一模一样,如何快速实现? 根据现有的表,建一个新的表,要求:新表的结构.数据与原表一模一样,如何实现快速复制旧表? 2.解 ...

  5. SQL复制表结构或表数据

    需求: 软件开发过程中,一般会部署两个数据库:一个测试数据库提供给开发和测试过程使用:一个运维数据库提供上线使用.当需求变化需增加表时,会遇到数据库表结构或表数据同步的问题,这时就要复制表结构或表数据 ...

  6. oracle表结构和表内容差异比对

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  7. oracle表结构和表内容差异比对【原】

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  8. Mysql导出(多张表)表结构及表数据 mysqldump用法

        命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1.导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚 ...

  9. mysql导出/导入表结构以及表数据

    导出: 命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 数据库名 表名 脚本名; 1.导出数据库为dbname的表结构(其中用戶名为root,密码为dbpasswd,生成的脚 ...

随机推荐

  1. DataTable复制自身行

    在我们工作的过程中有可能要使用DataTable产生一些重复数据(在不重复读取数据库的情况下) 无废话,直接上代码 DataTable复制自身一行(目的产生重复数据),已测试通过可直接复制 /// & ...

  2. SQL Server 向临时表插入数据

    INSERT INTO #DirtyOldWIPBOM SELECT TOP (100) PERCENT dbo.WIP_BOM.Model, dbo.WIP_BOM.PartNumber,WIP_B ...

  3. iOS中UISearchBar(搜索框)使用总结

    http://my.oschina.net/u/2340880/blog/509756

  4. JSON转Model内部实现解析

    一.思路: 1.通过模型类型获得所有的属性和其类型 2.对获得的json进行处理.类型处理 3.考虑字典键值和模型属性名不一致的情况 4.添加code用于归档 5.补充JSON转字典.字典转JSON. ...

  5. C#操作Flash动画

    对于在C#开发的过程中没有接触过Flash相关开发的人员来说,没有系统的资料进行学习,那么这篇文档针对于初学者来说是很好的学习DEMO. 本文章中的DEMO实现了C#的COM控件库中本来就带有对fla ...

  6. (一)原生JS实现 - 基本类方法

    类 var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } ...

  7. C# ITextSharp pdf 自动打印

    PDF生成后直接进入打印预览不用下载 using iTextSharp.text; using iTextSharp.text.pdf; Document pdfDoc = new Document( ...

  8. 微软企业库的Cache

    微软企业库的Cache 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.基于微软的企业库,我们的快速创建一个缓存的实现. 新建PrismSamp ...

  9. Linux - create usergroup, user and Assigning permissions

    第一步:登录已有的Linux系统,使用root账户,登录好以后,如下图: 这样,就登录到Linux系统中,而且是用root用户登录的 注意:如果,你想要创建用户和用户组,那么你当前登录的用户必须有ro ...

  10. windows安装配置mysql-5.7.13-winx64方法

    1.mysql-5.7.13-winx64.zip下载 官方下载地址:http://dev.mysql.com/downloads/mysql/ 2.解压到D:\mysql\mysql-5.7.13- ...