<MySQL>建表SQ和CRUD SQ脚本案例二
1. MySQL 建表SQ脚本案例:
- 地域表
CREATE TABLE `xxx_region_list_dic` (`seqId` INT(11) NOT NULL AUTO_INCREMENT,`sortId` INT(11) DEFAULT NULL,`name` VARCHAR(255) NOT NULL COMMENT '地域',`code` VARCHAR(25) NOT NULL COMMENT '编码',`isEnable` VARCHAR(25) DEFAULT NULL COMMENT '是否启用',PRIMARY KEY (`seqId`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='xxx地域表'
- 部门表
CREATE TABLE `xxx_department_list_dic` (`seqId` INT(11) NOT NULL AUTO_INCREMENT,`sortId` INT(11) DEFAULT NULL,`hrA` VARCHAR(255) NOT NULL COMMENT '部门A',`hrANo` VARCHAR(25) NOT NULL COMMENT '部门A编号',`hrB` VARCHAR(255) DEFAULT NULL COMMENT '部门B',`hrBNo` VARCHAR(25) NOT NULL COMMENT '部门B编号',`dicType` VARCHAR(25) NOT NULL COMMENT '类型',`recordCount` INT(11) NOT NULL COMMENT '使用记录',`isEnable` VARCHAR(25) DEFAULT NULL COMMENT '是否启用',PRIMARY KEY (`seqId`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='xxx部门表'
3. 其它配置字典
CREATE TABLE `xxx_other_list_dic` (`seqId` int(11) NOT NULL AUTO_INCREMENT,`parentId` int(11) DEFAULT NULL,`sort` int(11) DEFAULT NULL,`dicNameFirst` varchar(255) NOT NULL COMMENT '一级列表名称',`dicValueFirst` int(11) DEFAULT NULL COMMENT '一级列表编码',`dicNameSecond` varchar(255) DEFAULT NULL COMMENT '二级列表名称',`dicValueSecond` int(11) DEFAULT NULL COMMENT '二级列表编码',`dicType` varchar(255) NOT NULL COMMENT '类型',`isEnable` varchar(25) DEFAULT NULL COMMENT '是否启用',`createTime` datetime DEFAULT NULL COMMENT '创建时间',`createBy` int(11) DEFAULT NULL COMMENT '创建人姓名',`updateTime` datetime DEFAULT NULL COMMENT '修改时间',`updateby` int(11) DEFAULT NULL COMMENT '修改人姓名',PRIMARY KEY (`seqId`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='xxxOther字典表'
4. 数据存储表
CREATE TABLE `xxx_form_data_list` (`seqId` INT(11) NOT NULL AUTO_INCREMENT,`No` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '编号',`hrA` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '部门A',`hrB` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '部门B',`month` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '月份',`details` VARCHAR(3000) CHARACTER SET utf8 DEFAULT NULL COMMENT '详述',`money` DECIMAL(11,2) DEFAULT NULL COMMENT '金额',`statuSort` INT(11) DEFAULT NULL COMMENT '排序',`createdNo` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '人员工号',`createdBy` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '人员姓名',`createTime` VARCHAR(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '申报时间',`createTimeSecond` BIGINT(20) DEFAULT NULL COMMENT '申报时间转秒(int存储不下,所以选bigint)',`isSubmit` VARCHAR(20) DEFAULT NULL COMMENT '是否提交',`processID` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '流程ID',PRIMARY KEY (`seqId`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf16 COMMENT='xxx数据清单表'
5. 单据审批流程表:
CREATE TABLE `xxx_process_data_list` (`seqId` INT(11) NOT NULL AUTO_INCREMENT,`processID` VARCHAR(200) DEFAULT NULL COMMENT '流程ID',`jsonData` LONGTEXT COMMENT 'Json数据存储(大文本)',`taskId` VARCHAR(200) DEFAULT NULL COMMENT '任务节点ID',`No` VARCHAR(200) DEFAULT NULL COMMENT '编号',`taskDefKey` VARCHAR(200) DEFAULT NULL COMMENT '任务K值',`candidateUser` VARCHAR(200) DEFAULT NULL COMMENT '候选人',`taskDefName` VARCHAR(200) DEFAULT NULL COMMENT '任务名称',`startTime` VARCHAR(200) DEFAULT NULL COMMENT '任务起始时间',`endTime` VARCHAR(200) DEFAULT NULL COMMENT '任务结束时间',`empNo` VARCHAR(200) DEFAULT NULL COMMENT '审批人工号',`empName` VARCHAR(200) DEFAULT NULL COMMENT '审批人姓名',`hrA` VARCHAR(200) DEFAULT NULL COMMENT '部门A',`hrB` VARCHAR(200) DEFAULT NULL COMMENT '部门B',`region` VARCHAR(200) DEFAULT NULL COMMENT '地域',`xxApprovalComments` VARCHAR(200) DEFAULT NULL COMMENT 'xx审批意见',`xxApprovalOperation` VARCHAR(200) DEFAULT NULL COMMENT 'xx审批人操作',`xxApprovalResult` VARCHAR(200) DEFAULT NULL COMMENT 'xx审批结果',`xxUploadFile` VARCHAR(500) DEFAULT NULL COMMENT '上传文件',`createTime` VARCHAR(200) DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`seqId`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='XXX审批流程数据表'
6. 动态模板表
CREATE TABLE `xxx_table_header_list` (`headerName` VARCHAR(100) NOT NULL COMMENT '表头名称',`headerField` VARCHAR(100) NOT NULL COMMENT '表头名称字段英文',`headerType` VARCHAR(100) DEFAULT NULL COMMENT '数据类型',`headerLength` VARCHAR(100) DEFAULT NULL COMMENT '数据长度',`isModify` VARCHAR(50) DEFAULT 'true',`isDelete` VARCHAR(50) DEFAULT 'true',`isAuto` VARCHAR(50) DEFAULT 'false',`id` INT(50) NOT NULL AUTO_INCREMENT,`colExample` VARCHAR(1000) DEFAULT '非必填' COMMENT '样例(Excel模板的第二行样例)',PRIMARY KEY (`headerName`,`headerField`),KEY `id` (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='动态模板表'
2. CRUD SQ脚本案例:
// CONCAT:拼接 SELECT DISTINCT dicNameFirst AS title,CONCAT(dicNameFirst,':',dicValueFirst) AS VALUE FROM xxx_other_list_dic WHERE dicType = 'Business';// as:返回的字段重命名:SELECT DISTINCT dicNameFirst AS title,dicValueFirst AS VALUE,dicValueFirst AS CODEFROM xxx_other_list_dic WHERE dicType = 'Business';// 数据库表:添加字段xxx在字段ABC之后ALTER TABLE xxx_form_data_list ADD xxx VARCHAR(250) COMMENT '字段xxx' AFTER ABC;// 数据库表:删除字段xxx:ALTER TABLE xxx_form_data_list DROP xxx;// 数据库修改字段isUpdate注释为:是否修改ALTER TABLE xxx_form_data_list MODIFY COLUMN isUpdate VARCHAR(255) COMMENT '是否修改';// 数据库修改字段isApproval注释为:是否审批ALTER TABLE xxx_form_data_list MODIFY isApproval VARCHAR(20) COMMENT '是否审批';// SQ过滤:不等于and 1 = (case when taskDefKey <![CDATA[ <> ]]> #{taskDefKey} and xxApprovalResult <![CDATA[ <> ]]> #{xxApprovalResult} then 1 else 0 end);// 表插入数据INSERT INTO xxx_table_header_list(headerName,headerField,headerType,headerLength,isModify,isDelete,isAuto) VALUES('序列','orderNo','int','20','false','false','false');INSERT INTO xxx_table_header_list(headerName,headerField,headerType,headerLength,isModify,isDelete,isAuto) VALUES('编号','No','VARCHAR','200','false','false','false');INSERT INTO xxx_other_list_dic(dicNameFirst,dicValueFirst,dicNameSecond,dicValueSecond,dicType,isEnable) VALUES('其它','17000','其它','1700010','Business','1');// 表修改colExample列的数据UPDATE xxx_table_header_list SET colExample = '系统自动计算(勿填)' WHERE headerField = 'orderNo';UPDATE xxx_other_list_dic SET dicValueFirst = 11000,dicValueSecond = 1100010,isEnable = '1' WHERE dicNameFirst = '违规场景' AND dicNameSecond = '违规场景-1' AND dicType = 'Business';// 删除表数据(注意:慎用)DELETE FROM xxx_table_header_list WHERE 1=1;
注意:如果编写SQ脚本执行文件,MySQL脚本的每条SQ语句后面注意添加英文分号: ’;‘ 。