mysql中多个类型不同的字段组成一个唯一性索引,不会造成索引失效,但是如果多列字段组成的唯一性索引中有一个字段值是null,唯一性索引将会失效,采取的办法是把默认为null的值设置默认的值
建普通索引 CREATE INDEX 索引名称 ON 表名(`创建索引的字段1`,`创建索引的字段2`,`创建索引的字段3`);
CREATE INDEX 索引名称 ON 表名(`创建索引的字段1`,`创建索引的字段2`,`创建索引的字段3`);
例如:
CREATE INDEX project_task_require_BU ON project_task (`require_BU`);
CREATE TABLE `project_task` (
`id` char(32) NOT NULL,
`project_id` char(32) DEFAULT NULL COMMENT '来源系统项目ID',
`parent_task_id` char(32) DEFAULT NULL COMMENT '来源系统任务父ID',
`task_id` char(32) DEFAULT NULL COMMENT '来源系统任务ID',
`executor_id` char(32) DEFAULT NULL COMMENT '来源系统执行人ID',
`person_id` char(32) DEFAULT NULL COMMENT '关联员工ID',
`type` int DEFAULT NULL COMMENT '任务类型',
`status` int DEFAULT NULL COMMENT '任务状态',
`type_name` varchar(64) DEFAULT NULL COMMENT '类型名称',
`status_name` varchar(64) DEFAULT NULL COMMENT '状态名称',
`task_name` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '任务名称',
`require_no` varchar(64) DEFAULT NULL COMMENT '需求申请编号(仅限需求)',
`require_BU` varchar(32) DEFAULT NULL COMMENT '需求申请事业部',
`require_dept` char(32) DEFAULT NULL COMMENT '需求申请部门',
`require_budget` double(20,2) DEFAULT NULL COMMENT '需求申请预算金额',
`start_time` bigint DEFAULT NULL COMMENT '任务开始时间',
`due_time` bigint DEFAULT NULL COMMENT '任务到期时间',
`done_time` bigint DEFAULT NULL COMMENT '完成时间',
`create_time` bigint DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `project_task_project_id_index` (`project_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='项目关联任务';