gpt4 book ai didi

MySQL 外键语法错误

转载 作者:行者123 更新时间:2023-11-29 10:53:39 25 4
gpt4 key购买 nike

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 的初学者。上面的命令给了我这个:

Cannot add foreign key constraint

我已经尝试过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 |

最佳答案

根据 MySQL 文档 https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html ,您不能将 SET DEFAULT 与 INNODB 一起使用:

SET DEFAULT:MySQL 解析器可以识别此操作,但 InnoDB 和 NDB 都拒绝包含 ON DELETE SET DEFAULT 或 ON UPDATE SET DEFAULT 子句的表定义

关于MySQL 外键语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com