MYSQL 存储过程带参数 按时间创建相应的表

废话少说直接看代码。不明白的就留言

create procedure sm_creatMonthTbProc(mdate varchar (8))
begin
  declare sm_results_name varchar(30);
  set @sm_results_name = concat('sm_results_',mdate);
  set @csql = concat("create table if not exists ",@sm_results_name , " (ssh_id int(20) NOT NULL,`result` text,`testime` bigint(20) NOT NULL default '0',  `mid` bigint(20) NOT NULL,  PRIMARY KEY  (`ssh_id`,`testime`,`mid`),KEY  ",@sm_results_name,"_index01 (`ssh_id`),  KEY  ",@sm_results_name,"_index02  (`mid`),  KEY  ",@sm_results_name,"_index03 (`testime`)) ENGINE=MyISAM ;");
 
  PREPARE create_stmt from @csql;
  EXECUTE create_stmt;
end

执行 命令查看是否创建成功

SHOW PROCEDURE STATUS

mysql> SHOW PROCEDURE STATUS //
+--------------+---------------------+-----------+----------------+---------------------+---------------------+---------------+---------+
| Db           | Name                | Type      | Definer        | Modified            | Created             | Security_type | Comment |
+--------------+---------------------+-----------+----------------+---------------------+---------------------+---------------+---------+
| monitordb3   | sm_creatMonthTbProc | PROCEDURE | root@localhost | 2011-11-04 16:58:11 | 2011-11-04 16:58:11 | DEFINER       |         |
| seldnsdistdb | dx_lt_proc          | PROCEDURE | root@localhost | 2011-10-11 22:23:32 | 2011-10-11 22:23:32 | DEFINER       |         |
| seldnsdistdb | tt_dns_proc         | PROCEDURE | root@localhost | 2011-10-11 22:23:32 | 2011-10-11 22:23:32 | DEFINER       |         |
| seldnsdistdb | yd_dns_proc         | PROCEDURE | root@localhost | 2011-10-11 22:23:32 | 2011-10-11 22:23:32 | DEFINER       |         |
+--------------+---------------------+-----------+----------------+---------------------+---------------------+---------------+---------+
4 rows in set, 1 warning (0.00 sec)


红色行是我们创建的


执行命令删除 存储过程


DROP PROCEDURE  sm_creatMonthTbProc

执行命令 调用创建的存储过程

call  sm_creatMonthTbProc('20111104')

执行结果我就不贴上来了 ,不会的同学试试吧。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值