MySQL动态创建表

首先实现代码:

DELIMITER $$

USE `parents_send`$$

DROP PROCEDURE IF EXISTS `createCardInfomationTable`$$

CREATE PROCEDURE `createCardInfomationTable`(tableCount INT)
BEGIN
         DECLARE i INT;
         DECLARE table_name VARCHAR(20);
         DECLARE table_pre VARCHAR(20);
         DECLARE sql_text VARCHAR(20000);
         SET i=1;
         SET table_name='';
         SET table_pre='jzh_dynamic_message_';
         SET sql_text='';
         WHILE i<tableCount+1 DO
            SET @table_name=CONCAT(table_pre,CONCAT(i, ''));
            SET sql_text=CONCAT('CREATE TABLE ', @table_name, '(\`msg_id\` varchar(50) NOT NULL COMMENT \'消息id\',
              \`report_id\` varchar(50) DEFAULT NULL COMMENT \'学习报告id\',
              \`report_name\` varchar(200) DEFAULT NULL COMMENT \'学习报告名称\',
              \`report_time\` varchar(50) DEFAULT NULL COMMENT \'学习报告时间\',
              \`link_url\` varchar(200) DEFAULT NULL COMMENT \'外链url\',
              \`total_grade\` varchar(50) DEFAULT NULL COMMENT \'总分\',
              \`evaluate\` varchar(50) DEFAULT NULL COMMENT \'评级\',
              \`class_id\` varchar(50) DEFAULT NULL COMMENT \'班级id\',
              \`subject_id\` varchar(50) DEFAULT NULL COMMENT \'学科id\',
              \`subject_name\` varchar(200) DEFAULT NULL COMMENT \'学科名称\',
              \`student_id\` varchar(50) DEFAULT NULL COMMENT \'学员id\',
              \`student_name\` varchar(200) DEFAULT NULL COMMENT \'学员姓名\',
              \`class_time\` varchar(100) DEFAULT NULL COMMENT \'上课时间\',
              \`class_name\` varchar(200) DEFAULT NULL COMMENT \'班级名称\',
              \`class_address\` varchar(200) DEFAULT NULL COMMENT \'上课地点\',
              \`year\` varchar(50) DEFAULT NULL COMMENT \'年份\',
              \`term_id\` varchar(50) DEFAULT NULL COMMENT \'学期ID\',
              \`grade_id\` varchar(50) DEFAULT NULL COMMENT \'年级ID\',
              \`message_card_type\` varchar(50) DEFAULT NULL COMMENT \'卡片类型 1.第一类消息 2.第二类消息\',
              \`message_return_status\` varchar(50) DEFAULT NULL COMMENT \'appMq消息状态: -1.Mq发送失败   0.app消息已发送(通过Mq推送给家长端app)  1.app点赞(1类卡片,当app家长端卡片点赞,已经通过接口调用ips接口clickLike)  2.app触发提醒消息已经发送到家长会app(2类卡片 当app家长端读取消息调用接口remindUrged成功   )\',
              \`is_delete\` varchar(50) DEFAULT NULL COMMENT \'是否删除\',
              \`right_num\` varchar(50) DEFAULT NULL COMMENT \'答题正确数目\',
              \`error_num\` varchar(50) DEFAULT NULL COMMENT \'答题错误数目\',
              \`insert_time\` varchar(50) DEFAULT NULL COMMENT \'插入时间\',
              \`update_time\` varchar(50) DEFAULT NULL COMMENT \'更新时间\',
              \`channel_flag\` varchar(50) DEFAULT NULL COMMENT \'渠道标识\',
              \`city_code\` varchar(50) DEFAULT NULL COMMENT \'城市码\',
              \`app_message_id\` varchar(50) DEFAULT NULL COMMENT \'业务系统数据id\',
              \`course_types\` varchar(50) DEFAULT NULL COMMENT \'课次类型0代表普通,1代表n讲一测,2代表体验类\',
              \`course_id\` varchar(50) DEFAULT NULL COMMENT \'ips课次id\',
              \`message_from\` varchar(50) DEFAULT NULL,
              \`course_name\` varchar(200) DEFAULT NULL COMMENT \'课次名称\',
              \`course_order\` varchar(50) DEFAULT NULL COMMENT \'ips课次序号\',
              \`course_level_id\` varchar(50) DEFAULT NULL COMMENT \'ips关卡id\',
              \`course_level_order\` varchar(50) DEFAULT NULL COMMENT \'关卡序号\',
              \`course_level_name\` varchar(200) DEFAULT NULL COMMENT \' 关卡名称(枚举)\',
              \`curriculum_order\` varchar(50) DEFAULT NULL COMMENT \'业务系统课次序号\',
              \`curriculum_id\` varchar(50) DEFAULT NULL COMMENT \'业务系统课次ID\',
              \`classLevel_id\` varchar(50) DEFAULT NULL COMMENT \'班型ID\',
              \`teacher_avatar\` varchar(200) DEFAULT NULL COMMENT \'老师头像url\',
              \`picture_url\` varchar(200) DEFAULT NULL COMMENT \'图片url\',
              \`study_report_flag\` varchar(50) DEFAULT NULL COMMENT \'学习报告标识\',
              \`teacher_id\` varchar(50) DEFAULT NULL COMMENT \'老师id\',
              \`teacher_name\` varchar(200) DEFAULT NULL COMMENT \'老师名称\',
              \`remind_content\` varchar(500) DEFAULT NULL COMMENT \'提醒内容\',
              \`btn_status\` varchar(20) DEFAULT \'N\' COMMENT \'按钮的激活状态,Y:已经点击,N:未点击\',
              \`is_show\` varchar(20) DEFAULT \'1\' COMMENT \'1:显示,2:不展示\',
              \`ext_task_name\` varchar(200) DEFAULT NULL COMMENT \'IPS规划师任务名称\',
              PRIMARY KEY (\`msg_id\`),
              KEY \`messageIndex\` (\`student_id\`),
              KEY \`appMsgIdIndex\` (\`app_message_id\`)
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8;' );
            SELECT sql_text;
            SET @sql_text=sql_text;
            PREPARE stmt FROM @sql_text;
            EXECUTE stmt;
            DEALLOCATE PREPARE stmt;
            SET i=i+1;
        END WHILE;
    END$$

DELIMITER ;

出现的问题
int类型的数据转换为字符型使用:CONCAT(i, '')。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,766评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 沉默的空气里带着叹息 不曾知道那个人在哪里 最近的你还是不是欢喜 无名的人在黑暗中忘记 也许不记得 有多遥远距离 ...
    兰雪之泠阅读 276评论 0 1
  • 回了趟老家,空了很多天没有写总结了。回昆明以后,发现自己在做着夹心饼干的事情,有些难受,另外对于有些人的承诺没有办...
    gl秀阅读 233评论 0 0
  • 帮助独立开发者挣钱的资源。 从自己的代码中赚钱从未如此简单,但依然还是很难。我在这里尝试整理一系列资源来帮助所有希...
    张嘉夫阅读 4,459评论 3 52