mysql複製表結構建立新錶

2021-07-12 07:16:14 字數 1581 閱讀 2841

最近由於資料庫資料日增長量較大,某些不到乙個月已經達到了百萬級資料量,根據需要進行散表。後台將每月新資料insert新錶,因此資料庫要定期建立新錶。涉及到了mysql 定時任務等一系列知識。

關於mysql複製表結構建立對應新錶,要求是將按月建立新錶,新錶名為原表名加上日期。如:原表game_center_brow_page_log,新錶game_center_brow_page_log_201605

思路:用concat函式拼接動態建立表的語句並執行

總結如下:

1.

`-- 設定日期變數@month  格式如:201605

set @month=date_format(now(),'%y%m');

--設定建表語句@sql_create_table

set @sql_create_table = concat(

'create table if not exists game_center_download_data','_',@month,

"(`id`int(11) not null auto_increment,

`type`smallint(11) default null,

`num`int(11) default null,

`clienttime`varchar(45) default null,

`channel`varchar(45) default null,

`version`varchar(45) default null,

`model`varchar(125) default null,

`packagename`varchar(125) default null,

`iscp`tinyint(4) default null comment '是否為cp',

primary key (`id`)

) engine=innodb default charset=utf8 row_format=dynamic

");--儲存過程使用

prepare sql_create_table from @sql_create_table;

execute sql_create_table;

注:這種比較麻煩,還得show create table game_center_download_data;得到原表結構

2.

set @target_tname = 'game_center_download_data';

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;

mysql複製表資料 MySQL 複製表結構

介紹 有時候我們需要原封不動的複製一張表的表結構來生成一張新錶,mysql提供了兩種便捷的方法。例 create tabletb base idint not null primary key,namevarchar 10 keyix name name engine myisam charset ...

Mysql複製表結構 表資料

1 複製表結構及資料到新錶 create table 新錶select from 舊表 這種方法會將oldtable中所有的內容都拷貝過來,當然我們可以用delete from newtable 來刪除。不過這種方法的乙個最不好的地方就是新錶中沒有了舊表的primary key extra auto...

Mysql複製表結構 表資料

1 複製表結構及資料到新錶 create table 新錶select from 舊表 這種方法會將oldtable中所有的內容都拷貝過來,當然我們可以用delete from newtable 來刪除。不過這種方法的乙個最不好的地方就是新錶中沒有了舊表的primary key extra auto...