
如下定义
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 |