Mysql复制表

需求:现在有一张旧表tb2,要复制一张新表tb1。

当然我们可以使用:show create table 旧表; 查看旧表的创建语句,然后把语句copy一下,改个表名就可以了。同时我们也可以使用以下命令更方便的复制表。

一、复制表

create table 创建表

*号全部字段,可选择需要的字段

命令复制表结构复制主键、索引复制数据
create table tb1 like tb2;
create table tb1 select * from tb2 where 1=2
create table tb1 select * from tb2;
mysql复制表create方法

insert into 复制数据

INSERT INTO tb1 SELECT * FROM tb2 ; #表结构一样,全部复制

INSERT INTO tb1 (字段1,字段2,…….) SELECT 字段1,字段2,…… FROM tb2; #表结构不一样,复制部分字段

看上面可知,一般复制表的操作可以分两步走,根据需求来先复制表结构,再插入数据。下面操作就是复制了一个跟tb2一模一样的tb1表。

create table tb1 like tb2;
insert into tb1 select * from tb2;

二、复制旧数据库到新数据库

复制全部表结构并且复制全部表数据

#mysql -u root -ppassword
>CREATE DATABASE new_db;
#mysqldump old_db -u root -ppassword–skip-extended-insert –add-drop-table | mysql new_db -u root -ppassword

三、表不在同一数据库中

加上数据库名。db1.tb1 db2.tb2

insert into db1.tb1 select * from db2.tb2 (完全复制)
insert into db1.tb1 select distinct * from db2.tb2(不复制重复纪录)
insert into tdb1.tb1 select top 5 * from db2.tb2 (前五条纪录)

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享