MySQL联合索引用法示例

本文实例讲述了MySQL联合索引。分享给大家供大家参考,具体如下: 员工表 userid 部门表 deptid 员工部门表 条件:一个员工可以对应多个部门 问题:怎么样设置数据库,让其不能重复添

本文实例讲述了MySQL联合索引。分享给大家供大家参考,具体如下:

员工表 userid 部门表 deptid 员工部门表

条件:一个员工可以对应多个部门

问题:怎么样设置数据库,让其不能重复添加 userid 和deptid?

uuid userid deptid 111 212 311(这个就不能让其添加)

DROP TABLE IF EXISTS dept; CREATE TABLE dept ( id int(11) NOT NULL AUTO_INCREMENT, deptname char(32) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


-- Records of dept


INSERT INTO dept VALUES ('1', '1'); INSERT INTO dept VALUES ('2', '2');

DROP TABLE IF EXISTS employee; CREATE TABLE employee ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


-- Records of employee


INSERT INTO employee VALUES ('1', '11');

DROP TABLE IF EXISTS employee_dept; CREATE TABLE employee_dept ( id int(11) NOT NULL, employeeid int(11) NOT NULL, deptid int(11) NOT NULL, PRIMARY KEY (id), KEY bb (deptid), KEY myindex (employeeid,deptid), CONSTRAINT aa FOREIGN KEY (employeeid) REFERENCES employee (id), CONSTRAINT bb FOREIGN KEY (deptid) REFERENCES dept (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- Records of employee_dept


INSERT INTO employee_dept VALUES ('1', '1', '1'); INSERT INTO employee_dept VALUES ('2', '1', '2');

备注:创建联合索引create index myindex on employee_dept (employeeid,deptid);

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL索引操作技巧汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。