首先实现代码:
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, '')。