1、創建表
CREATE TABLE `trn_comment_msg` ( `comMsgId` int(11) NOT NULL AUTO_INCREMENT COMMENT '評論消息主鍵', `msgId` int(11) NOT NULL COMMENT '消息ID', `comId` int(11) NOT NULL COMMENT '課程評論ID', `createUserId` int(11) NOT NULL COMMENT '消息創建人Id', PRIMARY KEY (`comMsgId`), KEY `fk_comMsg_msg_idx` (`msgId`), KEY `fk_comMsg_com_idx` (`comId`), KEY `fk_trn_comment_msg_vs_usr_user_info_idx` (`createUserId`), CONSTRAINT `fk_comMsg_com` FOREIGN KEY (`comId`) REFERENCES `trn_course_comment` (`comId`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_comMsg_msg` FOREIGN KEY (`msgId`) REFERENCES `sys_msg` (`msgId`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_trn_comment_msg_vs_usr_user_info_on_createUserId` FOREIGN KEY (`createUserId`) REFERENCES `sys_user` (`userId`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8 COMMENT='評論消息表';
2、新增列
ALTER TABLE `trn_comment_msg` ADD COLUMN `content` VARCHAR(1000) NOT NULL COMMENT '消息內容' AFTER `createUserId`, ADD COLUMN `courseName` VARCHAR(20) NOT NULL COMMENT '課程名稱' AFTER `content`;
3、歷史數據遷移
-- trn_course_comment歷史數據遷移 update trn_comment_msg tcm inner join trn_course_comment tcc on tcm.comId=tcc.comId inner join trn_course tc on tc.courseId=tcc.courseId set tcm.content=tcc.content,tcm.courseName=tc.courseName
4、新增數據
1、向trn_course_comment表新增數據,必須保證其關聯的外鍵表`trn_course_comment`,`sys_msg`,`sys_user`中的comId,msgId,userId存在trn_course_comment表要新增的數據,否則報外鍵異常
2、暫時關閉外鍵約束,新增數據后在打開
SET SQL_SAFE_UPDATES=0; SET FOREIGN_KEY_CHECKS=0;
注意此方案插入數據時可能會存在含有外鍵約束的字段數據不匹配的情況