MySQL复制表的两种方式,MySQL insert into create table

在这里介绍两个复制表的Sql

第一步:首先创建一个表,这是表结构
CREATE TABLE `userinfo` (
  `ID` int(11) NOT NULL,
  `UserName` varchar(255) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  `Telephone` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
第二步:用insert into 复制表

注:是用insert into时候,需要先建一个表,用来存储老表的数据,以下是建的新表

CREATE TABLE `NewUserInfo` (
  `ID` int(11) NOT NULL,
  `UserName` varchar(255) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  `Telephone` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
以下是两个表结构相同的用法
insert into NewUserInfo select * from userinfo;
以下是两个表结构不相同或只需要部分字段的用法

这里先建一个表

drop table if exists NewUserInfo;
CREATE TABLE `NewUserInfo` (
  `ID` int(11) NOT NULL,
  `UserName1` varchar(255) DEFAULT NULL,
  `Age1` int(11) DEFAULT NULL,
  `Telephone1` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

然后进行复制

insert into NewUserInfo(UserName1,Age1,Telephone1) select UserName,Age,Telphone from userinfo;
第二步:用create table 复制表

注:使用create table 进行复制要注意,要在建表前先删表
以下是结构相同的表操作,直接复制整张表

drop table if exists userinfo1;
create table userinfo1 select * from userinfo;

结构相同或不同以及需要部分字段时,可以用一下操作

drop table if exists userinfo1;
create table userinfo1 select UserName,Age,Telephone from userinfo

你可能感兴趣的:(Mysql)