mysql存储过程创建分表00-99

存储过程各个数据库语法差异很多,花点时间自己动手写写

DROP PROCEDURE IF EXISTS `proc_create_table`;
DELIMITER ;;
CREATE PROCEDURE `proc_create_table`()
BEGIN
    DECLARE i int;
    DECLARE s varchar(45);
    DECLARE tableName varchar(100);
    SET i = 0;
    WHILE i <= 99 DO
    	IF i < 10 THEN
        	set s = CONCAT('0',i);
        ELSE
        	set s = i;
        END IF;
        set i = i + 1;
        set tableName = CONCAT('tb_user_***',s);
        set @csql = CONCAT('CREATE TABLE IF NOT EXISTS `',tableName,'` (
  `_ID` varchar(100) NOT NULL COMMENT \'ID\n\',
  `USER_ID` bigint(45) DEFAULT NULL,
  `REMARK` varchar(300) DEFAULT NULL COMMENT \'信息:\',
  `CREATE_TIME` timestamp(3) NULL DEFAULT NULL,
  `UPDATE_TIME` timestamp(3) NULL DEFAULT NULL,
  PRIMARY KEY (`***`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
    PREPARE create_stmt from @csql;  
    EXECUTE create_stmt;
    END WHILE;
END
;;
DELIMITER ;

call proc_create_table

修改分表添加字段

DROP PROCEDURE IF EXISTS `proc_create_table`;
DELIMITER ;;
CREATE PROCEDURE `proc_create_table`()
BEGIN
    DECLARE i int;
    DECLARE s varchar(45);
    DECLARE tableName varchar(100);
    SET i = 0;
    WHILE i <= 99 DO
    	IF i < 10 THEN
        	set s = CONCAT('0',i);
        ELSE
        	set s = i;
        END IF;
        set i = i + 1;
        set tableName = CONCAT('tb_user_sport_social_recommend_',s);
        set @csql = CONCAT('ALTER TABLE `',tableName,'`
  ADD `REMARK` varchar(500) NOT NULL;');
    PREPARE create_stmt from @csql;  
    EXECUTE create_stmt;
    END WHILE;
END
;;
DELIMITER ;

call proc_create_table
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左钦杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值