CREATE TABLE DEPARTMENT (Dname VARCHAR(15) NOT NULL,
Dnumber INT NOT NULL,
Mgr_ssn CHAR(9) NOT NULL,
Mgr_start_Date DATE,
PRIMARY KEY(Dnumber),
UNIQUE(Dname),
FOREIGN KEY(Mgr_ssn) REFERENCES EMPLOYEE (Ssn)
ON DELETE SET DEFAULT ON UPDATE CASCADE);
我是MySQL的初学者。上面的命令使我这个:MySQL外键语法错误
无法添加外键约束
我已经试过SHOW ENGINE INNODB STATUS;
我查EMPLOYEE.Ssn的数据类型。 请帮忙。
编辑:我EMPLOYEE表
| employee | CREATE TABLE `employee` (
`Fname` varchar(10) DEFAULT NULL,
`Minit` char(1) DEFAULT NULL,
`Lname` varchar(10) DEFAULT NULL,
`Ssn` char(9) NOT NULL,
`Bdate` date DEFAULT NULL,
`Address` varchar(40) DEFAULT NULL,
`Sex` char(1) DEFAULT NULL,
`Salary` int(11) DEFAULT NULL,
`Super_ssn` char(9) DEFAULT NULL,
`Dno` int(11) DEFAULT NULL,
PRIMARY KEY (`Ssn`),
KEY `Super_ssn` (`Super_ssn`),
CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`Super_ssn`) REFERENCES `EMPLOYEE` (`Ssn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
你肯定FOREIGHN关键是拼写一个h?或者是你粘贴时发生错字 –
谢谢。我修正了它,但现在它给了我“不能添加外键约束” –
“默认情况下,表别名在Unix上区分大小写,但在Windows或OS X上不是这样。......最好采用一致的约定,例如** always **使用小写名称**创建和引用数据库和表**。为了最大的便携性和易用性,建议使用此约定。“ https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html – spencer7593