所谓儒虫复制
,就是针对一个表的数据,进行快速的复制并插入到所需要的表中,以期在短时间内具备“大量数据”,以用于测试或其他特殊场合,比如:
- 将一个表的数据迁移到另外一个表的,或者迁移一部分指定数据到另外一个表。
- 将一个表的大量数据,复制到另一个表中;
- 将一个表的数据复制到本身表中以产生大量数据;
将 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 | +----+-------+------+