문제

내가 작성하는 SQL 데이터베이스에 문제가 있습니다. InnoDB를 사용하기 위해 전환하려고하지만 계단식에 대한 구문 (또는 논리)을 정확하게 얻을 수는 없습니다.

여기에 있습니다 코드 오류의 일부. 40 행을 좋아하지 않습니다.

일반적인 암호 (적어도 나에게) 형식의 오류 출력 :

ERROR 1005 (HY000) at line 36: Can't create table './school/staff.frm' (errno: 150)

편집하다:

여기에 있습니다 전체 SQL 파일 도움이되면 파이프를하려고합니다.

도움이 되었습니까?

해결책

외국 키는 색인이어야합니다. (역할. 이름)

이 시도:

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)로 변경할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top