承接上文,本篇介紹建立mysql旬表的內容,使用儲存過程
寫在前面
使用之前,請測試多次。並且修改對應的內容,使其符合您的實際需要
主要是對變數 i 表示的是月份,需要替換表結構和表名
delimiter $$
create
procedure create_table(
)begin
declare i int
;set i=1;
while i<=
12do
set@sql_create_table_gpstrail01
= concat(concat(
'create table if not exists page_view_log_'
, date_format(date_add(curdate(),
interval i month),
'%y%m'),
'_1'
,"(
`id` int(10) unsigned not null auto_increment comment '主鍵,自增id',
`time` int(10) unsigned not null comment '訪問時間',
`pageid` int(4) unsigned not null comment '頁面id',
`viewip` bigint(20) unsigned not null comment '整型後的ip',
primary key (`id`),
key `page` (`pageid`) using btree
) engine=innodb default charset=utf8")
);set@sql_create_table_gpstrail02
= concat(concat(
'create table if not exists page_view_log_'
, date_format(date_add(curdate(),
interval i month),
'%y%m'),
'_2'
,"(
`id` int(10) unsigned not null auto_increment comment '主鍵,自增id',
`time` int(10) unsigned not null comment '訪問時間',
`pageid` int(4) unsigned not null comment '頁面id',
`viewip` bigint(20) unsigned not null comment '整型後的ip',
primary key (`id`),
key `page` (`pageid`) using btree
) engine=innodb default charset=utf8")
);set@sql_create_table_gpstrail03
= concat(concat(
'create table if not exists page_view_log_'
, date_format(date_add(curdate(),
interval i month),
'%y%m'),
'_3'
,"(
`id` int(10) unsigned not null auto_increment comment '主鍵,自增id',
`time` int(10) unsigned not null comment '訪問時間',
`pageid` int(4) unsigned not null comment '頁面id',
`viewip` bigint(20) unsigned not null comment '整型後的ip',
primary key (`id`),
key `page` (`pageid`) using btree
) engine=innodb default charset=utf8")
);prepare sql_create_table_gpstrail01 from
@sql_create_table_gpstrail01
;prepare sql_create_table_gpstrail02 from
@sql_create_table_gpstrail02
;prepare sql_create_table_gpstrail03 from
@sql_create_table_gpstrail03
;execute sql_create_table_gpstrail01;
execute sql_create_table_gpstrail02;
execute sql_create_table_gpstrail03;
set i=i+1;
endwhile
;deallocate
prepare sql_create_table_gpstrail01;
deallocate
prepare sql_create_table_gpstrail02;
deallocate
prepare sql_create_table_gpstrail03;
end $$
delimiter;使用
call create_table();
刪除drop
procedure create_table;
delimiter $$
create
procedure create_table(
)begin
declare i int
;set i=1;
while i<=
12do
set@sql_create_table_gpstrail
= concat(
'create table if not exists seat'
, date_format(date_add(curdate(),
interval i month),
'%y%m'),
"(
`id` int(11) default null,
`student` varchar(255) default null
) engine=innodb default charset=utf8mb4")
;prepare sql_create_table_gpstrail from
@sql_create_table_gpstrail
;execute sql_create_table_gpstrail;
set i=i+1;
endwhile
;deallocate
prepare sql_create_table_gpstrail;
end $$
delimiter
;
用於資料搬遷,如果您沒有這個需求,可忽略以下內容
12月份新增:
create
table
`base`
(`id`
varchar(10
)default
null
)engine
=innodb
default
charset
=utf8
delimiter $$
create
procedure insert_table(
)begin
declare i int
;set i=1;
while i<=
12do
set@sql_insert_table
=concat(
'insert into base(id)'
,'values('
,date_format(date_add(curdate(),
interval i month),
'%y%m'),
')')
;prepare sql_insert_table from
@sql_insert_table
;execute sql_insert_table;
set i=i+1;
endwhile
;deallocate
prepare sql_insert_table;
end $$
delimiter
;#以上為新增'年月'格式 202101
#'年'格式的insert into base (id) values('2021');
call insert_table();
drop
procedure insert_table;
04 Mysql 初識sql語句
create database db1 charset utf8 檢視當前建立的資料庫 show create database db1 檢視所有的資料庫 show databases alter database db1 charset gbk drop database db1 use db1 ...
04 MySQL常見函式 單行函式
單行函式細分 1 字元函式 2 數學函式 3 日期函式 4 其他函式 5 流程控制函式 單行函式 字元函式 一 字元函式 1.length 獲取引數的位元組長度 select length john select length 張三丰 utf 8編碼,1個漢字3個位元組 檢視當前客戶端的字符集 sh...
php增加mysql索引 mysql怎麼新增索引
在mysql中可以通過使用alter table這個sql語句來為表中的字段新增索引。1 新增primary key 主鍵索引 mysql alter table table name add primary key column 2 新增unique 唯一索引 mysql alter table ...