您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MySQL

Mysql 蠕虫复制(查询的结果数据插入某个表中)

时间:02-22来源:作者:点击数:

所谓儒虫复制,就是针对一个表的数据,进行快速的复制并插入到所需要的表中,以期在短时间内具备“大量数据”,以用于测试或其他特殊场合,比如:

  • 将一个表的数据迁移到另外一个表的,或者迁移一部分指定数据到另外一个表。
  • 将一个表的大量数据,复制到另一个表中;
  • 将一个表的数据复制到本身表中以产生大量数据;
将 test 表中的 name age 数据查询出来并插入到 user 表中
insert into user (name, age) select name,age from test;

也可以查出自身数据插入到自身表中,这样可以快速产生大量的测试数据
insert into user (name, age) select name,age from user;

要求:
  1、插入语句的字段个数,跟 select 语句的字段个数相等。
  2、插入语句的字段类型,跟 select 语句的字段类型相同。
  3、表之间的字段名可以不相同,只要满足以上两点就行了。

测试数据,将 test 表的数据迁移到 user 表中:

mysql> desc test;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | int(11)             | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)         | YES  |     | NULL    |                |
| sex   | varchar(1)          | YES  |     | NULL    |                |
| age   | tinyint(3) unsigned | YES  |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+

mysql> desc user;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| id    | int(11)             | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)         | YES  |     | NULL    |                |
| age   | tinyint(3) unsigned | YES  |     | NULL    |                |
+-------+---------------------+------+-----+---------+----------------+

mysql> select * from test;
+----+-------+------+------+
| id | name  | sex  | age  |
+----+-------+------+------+
|  1 | name1 | 男   |    5 |
|  2 | name2 | 女   |   10 |
|  3 | name3 | 男   |   15 |
|  4 | name4 | 男   |   20 |
+----+-------+------+------+

mysql> select * from user;
Empty set (0.00 sec)

mysql> insert into user (name, age) select name, age from test;
Query OK, 4 rows affected (0.00 sec)

mysql> select * from user;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  1 | name1 |    5 |
|  2 | name2 |   10 |
|  3 | name3 |   15 |
|  4 | name4 |   20 |
+----+-------+------+
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门