English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서는 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(이메일 보내기 때, #을 @으로 변경해 주세요. 신고하고 관련 증거를 제공하시면, 사실 확인 후 이 사이트는 즉시 침해 의심 내용을 삭제합니다。)