如下定义
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`),
KEY `emp_no` (`emp_no`),
CONSTRAINT `salaries_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
同时有
PRIMARY KEY (emp_no,from_date),
KEY emp_no (emp_no),
我觉得既然 emp_no 在 主键索引里 为何还要单独定义一个 key ?
1
billlee 2017 年 7 月 9 日
大概是因为设计这个表的人没学过数据库原理吧
|
3
sunriseyuen 2017 年 7 月 9 日 via Android
看上去员工号码+日期才是唯一的
|
4
leoli 2017 年 7 月 9 日
|
6
wwqgtxx 2017 年 7 月 10 日 via iPhone
那个 key 应该是当索引用的吧
|
7
choury 2017 年 7 月 10 日 via Android |
9
kn007 2017 年 7 月 10 日 KEY `emp_no` (`emp_no`) 多余+1
|
10
huigeer 2017 年 7 月 10 日 via iPhone
innodb 这样建主键,dba 会哭晕。primkey 不是自增会影响 insert
|
12
lcorange 2017 年 7 月 10 日 via Android
|