今天在群里偶然看见有人在用sqlserver进行复制表,使用的命令的CREATE TABLE temporaryTable select distinct * from xxcw..cbmfx where bmh in ('YF20180052'),最开始以为没有这种命令,后来专门查了一下相关资料,发现mysql也有相同的类型的命令。
记录如下:
1 复制旧表的结构到新表
(1)create table 新表 select * from 旧表 where 1=2;
(2)create table 新表 like 旧表;
此处第一种方式不会将自增id,主键类型复制过去,而第二种将表所有结构都会复制过去。第一条 1=2的含义,我们都知道where之后跟的是查询的条件,1=2永远为false ,就是表面所有数据内容都不选择,如果是1=1则为true,表示所有数据都被选择。
2 复制表结构及数据到新表
create table 新表 select * from 旧表;
3 复制旧表的数据到新表前提两个表结构一样
insert into 新表 select * from 旧表;
4 复制旧表的数据到新表,两个表结构不一样
inser into 新表(字段1,字段二...) select 字段一,字段二... from 旧表;