备份表、数据

1、复制表结构、数据

       create  table 新表  as  select * from 旧表;

       这种方法会将 旧表 中所有的内容都拷贝过来,包括表结构、数据。 

       缺点:新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加。

2、只复制表结构

方法一:

    create table 新表 select * from 旧表 where 1=0;

    缺点:新表中没有了旧表的primary key、Extra(auto_increment)等属性。

方法二:

    create table 新表 like 旧表。

方法三:

     show create table 旧表; 
     这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表。

方法三;

    set @target_tname = '旧表';
    set @month=date_format(now(),'%Y%m');
    set @sql_create_table = concat('create table if not exists ',@target_tname,'_',@month,' like ',@target_tname);
    prepare sql_create_table from @sql_create_table;
    execute sql_create_table;
原理:create table if not exists test like game_center_download_data;

3、只复制表数据:

如果两个表结构一样:

insert into 新表 select * from 旧表;

如果两个表结构不一样:

insert into 新表(column1,column2...)  select column1,column2... from 旧表;

你可能感兴趣的:(mysql,数据库)