English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 조인 인덱스 사용 예제

이 문서는 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;
-- ----------------------------
-- 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 데이터베이스 계산에 도움이 되었기를 바랍니다。

명시: 본 글의 내용은 인터넷에서 가져왔으며, 원저자의 소유물입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 자체적으로 업로드한 것이며, 본 사이트는 소유권을 가지지 않으며, 인공 편집을 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해 내용이 발견되면 이메일을 발송하여 주세요: notice#oldtoolbag.com(이메일 보내기 때, #을 @으로 변경해 주세요. 신고하고 관련 증거를 제공하시면, 사실 확인 후 이 사이트는 즉시 침해 의심 내용을 삭제합니다。)

좋아하는 것