Innodb 캐스케이드 구문 / 논리 문제
-
05-09-2019 - |
해결책
외국 키는 색인이어야합니다. (역할. 이름)
이 시도:
CREATE TABLE IF NOT EXISTS `role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(30) NOT NULL,
`description` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB;
다른 팁
"역할"열의 외국 키 제약 조건이 ID 대신 이름을 사용한다는 것을 의미 했습니까? 다음 줄처럼 보입니다 (43 행) :
FOREIGN KEY (role) REFERENCES role(name)
해야한다:
FOREIGN KEY (role) REFERENCES role(id)
이것은 오류없이 실행됩니다.
또는 "직원"열의 데이터 유형 (Line 40, 역할 int NULL NULL)을 NULL이 아닌 Char (30)로 변경할 수 있습니다.
제휴하지 않습니다 StackOverflow