Home  >  Article  >  Database  >  深入mysql存储过程中表名使用参数传入的详解_MySQL

深入mysql存储过程中表名使用参数传入的详解_MySQL

WBOY
WBOYOriginal
2016-06-01 13:24:52874browse

bitsCN.com

BEGIN

declare date_str varchar(8);
declare table_prefix varchar(20);
set table_prefix='mail_rare_visit_';
set date_str = DATE_FORMAT(CURRENT_DATE(),'%Y%m%d');
set @table_name = concat(table_prefix, date_str);
set @s = concat('CREATE TABLE ', @table_name, '(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `city_id` int(11) NOT NULL,
  `email` varchar(300) NOT NULL,
  `channel_id` int(11) DEFAULT NULL,
  `w_revenue` decimal(7,6) NOT NULL DEFAULT  0.000000,
  `w_buy` decimal(7,6) NOT NULL DEFAULT 0.000000,
  `w_browse` decimal(7,6) NOT NULL DEFAULT 0.000000,
  `rec_goods` varchar(800) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_city_id` (`user_id`),
  KEY `idx_email` (`email`),
  KEY `idx_channel_id` (`channel_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;');

prepare stmt from @s;
execute stmt;

DEALLOCATE prepare stmt;

end

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn