mysql 根据user_id来分割批量创建数据表

mysql 使用存储过程批量创建表,内部会有索引创建,索引创建直接在sql中创建

DELIMITER ;; 
CREATE PROCEDURE create_feed() 
BEGIN 
DECLARE `@y` INT DEFAULT 0;
DECLARE `@createSql` VARCHAR(1000); 
DECLARE `@createIndexSql` VARCHAR(1000);
set `@y`=0;
WHILE `@y`<3 DO
SET @createSql = CONCAT('CREATE TABLE IF NOT EXISTS user_feed_list_',`@y`,'(
  `feed_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` bigint(20) DEFAULT 0,
  `channel_id` int(11) DEFAULT 0,
  `sub_channel_id` int(11) DEFAULT 0,
  `main_id` varchar(100) DEFAULT NULL,
  `extend` varchar(100) DEFAULT NULL,
  `type` tinyint(4) DEFAULT 0,
  `publish_time` datetime DEFAULT NULL,
  `creation_time` datetime DEFAULT NULL,
  PRIMARY KEY (`feed_id`),
  KEY `feed_index` (`user_id`,`publish_time`) USING BTREE
 )'
);
prepare stmt from @createSql; 
execute stmt; 
SET `@y`=`@y`+1; 
END WHILE ; 
END;;
注意不要加字段的注释,否则会报错

查看原文:http://www.architecy.com/archives/246
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值