当前位置:   article > 正文

MySQL 创建、复制表_创建并复制一个表

创建并复制一个表

复制表:这种场景我认为可能比较多的应用在,想修改某个表的数据,但是又没有十足的把握,这时就可以复制一个一模一样的表,用 “复制表” 来做试验。

第一种方法:

1、已经有 test_1 表,想复制一份并命名为:test_2。

  1. 先 show create table test_1;(或者 show create table test_1 \G;)查看 test_1 的结构。
  2. 倒数第三行多了个:AUTO_INCREMENT=8,表示 test_1 表中最后一条数据 `id` 字段的值为:7。
  1. mysql> show create table test_1;
  2. +--------+--------------------------------------------------------------------------------+
  3. | Table | Create Table |
  4. +--------+--------------------------------------------------------------------------------+
  5. | test_1 | CREATE TABLE `test_1` (
  6. `id` int unsigned NOT NULL AUTO_INCREMENT,
  7. `name` varchar(20) NOT NULL,
  8. `age` int unsigned DEFAULT NULL,
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
  11. +--------+--------------------------------------------------------------------------------+
  12. 1 row in set (0.00 sec)
  1. 直接把 test_1 改为 test_2,创建 test_2 表。(如下:show create table test_2;)
    1. mysql> create table `test_2`(
    2. -> `id` int(10) unsigned AUTO_INCREMENT,
    3. -> `name` varchar(20) not null,
    4. -> `age` int(10) unsigned,
    5. -> primary key(`id`)
    6. -> )engine=innodb default charset=utf8;
    7. Query OK, 0 rows affected, 3 warnings (0.03 sec)

     

  2.  这时再将 test_1 表中已有的数据复制到 test_2 中。 

          insert into test_2(id, name, age) select id, name, age from test_1;(或者 insert into test_2(id, name, age) select * from test_1; 或者 insert into test_2 select * from test_1;)

  1. 执行 select * from test_1/test_2; (两表数据一样)

 

第二种方法:

  1. 使用 like 。
  2. create table test_2 like test_1; (字面意思:创建一个像 test_1 的表,名字为 test_2 )
  3. insert into test_2 select * from test_1;(将查询 test_1 的数据,插入到 test_2 中)
  4. select * from test_1/test_2;(两表数据一样)

 

经过简单测试,数据正常,符合我的目标要求。(从一些结果来看,正常;但不保证一定正确;上面的编号 1 2 什么的,不太连续,弄半天不知道咋弄了,将就下) 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/478110
推荐阅读
相关标签
  

闽ICP备14008679号