하지만 난 내 db 서버, 하고 나는 내 새 스키마에는 포워드하도록 기술자예요 관용으로충만하신 can& # 39, 나는 왜 t 그림 아웃해야 가져오는 오류입니다. # 39, ve i& 답을 찾을 수 있지만, 이 모든 것을 하려고 검색하겠습니다 I& # 39 을 설정할 수 있는데 최근 db 엔진을 스냅하거나 시동키는 smartupdate I& # 39 m, Innodb 를 통해 외래 키 고유한 테이블에 기본 키 위해 노력하고 있다. 내가 그렇게 할 경우, 이러한 것들이 모두 I& # 39 m not 한다. 다른 보세요들 제공할 수 있도록?
Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint
-- -----------------------------------------------------
-- Table `Alternative_Pathways`.`Clients_has_Staff`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` (
`Clients_Case_Number` INT NOT NULL ,
`Staff_Emp_ID` INT NOT NULL ,
PRIMARY KEY (`Clients_Case_Number`, `Staff_Emp_ID`) ,
INDEX `fk_Clients_has_Staff_Staff1_idx` (`Staff_Emp_ID` ASC) ,
INDEX `fk_Clients_has_Staff_Clients_idx` (`Clients_Case_Number` ASC) ,
CONSTRAINT `fk_Clients_has_Staff_Clients`
FOREIGN KEY (`Clients_Case_Number` )
REFERENCES `Alternative_Pathways`.`Clients` (`Case_Number` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Clients_has_Staff_Staff1`
FOREIGN KEY (`Staff_Emp_ID` )
REFERENCES `Alternative_Pathways`.`Staff` (`Emp_ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
SQL 스크립트를 실행하는 완료. 명령문입니다: 1 7 성공, 실패
다음은 SQL 부모에 대한 표.
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients` (
`Case_Number` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
`Address` CHAR(50) NULL ,
`Phone_Number` INT(10) NULL ,
PRIMARY KEY (`Case_Number`) )
ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Staff` (
`Emp_ID` INT NOT NULL ,
`First_Name` CHAR(10) NULL ,
`Middle_Name` CHAR(10) NULL ,
`Last_Name` CHAR(10) NULL ,
PRIMARY KEY (`Emp_ID`) )
ENGINE = InnoDB
외래 키 제약 때문에 오류가 발생할 수 있습니다.
확인란 이러한.
타인에 대한 동일한 오류 때문에 열 수 없는 경우도 있습니다 불일치입니다 유형에 대한 자세한 정보를 확인할 수 있습니다 명령을 실행하여 mysql 파리니 키 오류
SHOW ENGINE INNODB STATUS;
위쪽의 인쇄했습니다 오류 메시지 같은 항목을 찾을 수 있습니다.
>. Referenced) 에 있는 테이블 색인 찾을 수 없습니다. 첫 번째 열 또는 열 유형을 나타나는 referenced 열 테이블에서 referenced 구속을 위한 테이블 일치하지 않습니다.
1215년 는 오류 귀찮게 하나. [# 39 의 폭발 Pill& 오토메이티드] (https://stackoverflow.com/a/16969176/2228771) 는 기본. 거기서 만들려는 시작 합니다. 그러나, 이 밖에 볼 수 있는 미묘한 경우에는 훨씬 더 많다.
예를 들어, 기본 키 link up 할 때 서로 다른 테이블뿐 이벤트수정적절한 '에 대한' 옵션 '와' 업데이트하십시오 삭제하시겠습니까 제공할 수 있어야 합니다. E. g.:
...
PRIMARY KEY (`id`),
FOREIGN KEY (`id`) REFERENCES `t` (`other_id`) ON DELETE SET NULL
....
확신할 수 있는데, 이러한 종류의 구속, 그래서 더욱 partnernet 미묘한 문제를 추가할 때 올 때, 항상 그 의미와 제약과 구속 오류뿐만 구현하므로 쉽게 이해할 수 있는지, 기존 컨텍스트입니다. 좋은 운빨이야 사용하면 오류 1215년!
테이블 사용하여 collation 확인 ['SHOW 테이블 상태'] (http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html) 등 collation 테이블뿐 대한 정보를 확인할 수 있습니다.
내 경우, 난 이미 삭제된 사용하여 테이블을 FOREIGN_KEY_CHECKS = 0 = 1 ',' 세트 '다음' FOREIGN_KEY_CHECKS 설정되었습니다 다음날이야 1215년 표, 나는 attaboy 리로드하려면 나가보니 '오류'. 당시 이 문제를 갖고 있는 다른 테이블에 어딨었는데 데이터베이스입니까 외국 주요 테이블에 삭제하고 리로드하지 갖고 있었다. 리로드하지 프로세스를 변화에 관련된 부분에 대한 데이터 형식을 필드 중 하나가 만들었는데, 이 때문에 다른 표 '에서' 1215년 외래 키 잘못된 트리거하는 오류. 내가 이 문제를 해결할 수 있는 새로운 데이터 형식을 통해 다른 테이블 리로드하지 드롭하기 후 관련 분야.
내가 경험한 " 함께 핏폴 있습니다, 오류 1215년: 추가해서는 외래 키 constraint". 특히 JeffreyWay& # 39 의 라라벨, 라라벨 사용할 때 4 4 만들어낸다.
빈틈없어야 사실을 알고 있는 파일을 수 있으며, 각 마이그레이션과 타임스탬프로 파일_이름 오더하려면 다음 함께 파일이 생성됩니다. The order of the order of 마이그레이션 작업이 세대 역시 이 때, php, 장인이 " 불지옥의 장인이 CLI 명령을 migrate". 따라서 될 수 있는 파일 요청합니다 외래 키 키를 가지고 있지만, 아직 구속, 파일, 1215년 는 rmw 받을시간은 생성할지 오류가 발생합니다. 이 경우 너희는너희가 할 일은 순서를 조정하십시오 마이그레이션과 파일을 생성할 수 있습니다. 새 파일을 생성 후 적절한 순서로 복사 (copy) 컨텐트에서 삭제하시겠습니까 무질서, 기존 파일.
내가 경식도 같은 문제로, 내 해결책:
CREATE TABLE EMPRES
( NoFilm smallint NOT NULL
PRIMARY KEY (NoFilm)
FOREIGN KEY (NoFilm) REFERENCES cassettes
);
CREATE TABLE EMPRES
(NoFilm smallint NOT NULL REFERENCES cassettes,
PRIMARY KEY (NoFilm)
);
난 이미 동일한 문제가 발생합니다. 내가 이렇게 하면 이를 해결했다.
내가 만든 다음 줄을 '기본 키: (id AUTO_INCREMENT unsigned int (11) NOT NULL) '
이 솔루션은 하고 난 후 나와 내 임포트하려면 테이블 스키마 구성기는. 만약 작동하잖아 당신꺼에요, 알려주세요!
굿 럭!
펠리페 T& 시오 # 233.
내가 이 오류를 찾을 수 없습니다.
CREATE TABLE RATING (
Riv_Id INT(5),
Mov_Id INT(10) DEFAULT 0,
Stars INT(5),
Rating_date DATE,
PRIMARY KEY (Riv_Id, Mov_Id),
FOREIGN KEY (Riv_Id) REFERENCES REVIEWER(Reviewer_ID)
ON DELETE SET NULL ON UPDATE CASCADE,
FOREIGN KEY (Mov_Id) REFERENCES MOVIE(Movie_ID)
ON DELETE SET DEFAULT ON UPDATE CASCADE
)
이 경우 추가 싶어서 '아니라' 의 VARCHAR 외래 키 관계. 내가 하고 있는 MySQL 워크벤치 v8.0 마침내 지난주 보냈다는 분명 이 문제를 해결할 수 있는 오류가 발생합니다.
파선-짧은 Answer:* 문자 집합과 collation 참조하는 테이블의 테이블 스키마 참조 열의, 열 및 기타 표로 참조입니다 테이블뿐만 일치시키려면 상위입니다 있다.
기절해있는 Answer:* 난 이미 내 테이블 이넘 데이터 형식. 난 내가 할 수 있는 값을 변경할 수 '와' 이 VARCHAR 내려받습니다 참조 테이블 그렇게 don& # 39 표, 추가 옵션을 변경할 수 없는 상위입니다. 이 간단한 듯 하지만 나는 attaboy 외래 키 릴레이션십 1215년 오류:. & # 39 의 다음 [아빈드] [1], [링크] [2] 답변 및 사용을 제안했다.
SHOW ENGINE INNODB STATUS;
이 명령을 사용하는 방법에 대한 자세한 설명은 다음 나는 attaboy 오류에 대한 유용한 정보를 추가 없이
>. Referenced) 에 있는 테이블 색인 찾을 수 없습니다. >. 첫 번째 열 또는 열 유형을 나타나는 referenced 열 >. 테이블에서 referenced 구속을 위한 테이블 일치하지 않습니다. >. 참고로, 내부 저장 및 변화가 설정되었습니다 이넘 유형 >. 단, 이러한 innodb 4.1.12 이전 테이블을 사용하여 만든 테이블 >. = >. 이러한 새로운 테이블을 참조됨 열 수 없습니다. >. 자세한 내용은 http://dev.mysql.com/doc/refman/8.0/en/innodb-foreign-key-constraints.html 정답 외래 키 정의할 수 있다.
그 이후에는 사용 '세트' 를 제안한 FOREIGN_KEY_CHECKS = 0; [아빈드 바라트바이] [3] 와 링크 [here] [4]:
이 제공했음 다음 오류 메시지:
>. Error Code: 1822년. 외래 키 추가 실패 구속. 누각되었습니다 >. 지수는 구속
>. 오류 1452년: 추가해서는 또는 업데이트하려면 하위여야 행: 해외 주요 구속 >. 실패
내가 변경일 스키마에는 전체를 대상으로 하는 모든 문자 집합과 collation 테이블 및 모든 열이 다음과 같습니다.
CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
이는 마침내 내 1215년 오류 문제가 해결됐다.
[1]: https://stackoverflow.com/a/24635096/6696819 " arvind"; [2]: https://stackoverflow.com/questions/21526055/mysql-cannot-create-foreign-key-constraint " link"; [3]: https://stackoverflow.com/a/52620298/6696819 " 아빈드 Bharadwaj"; [4]: https://stackoverflow.com/questions/26329775/error-code-1822-failed-to-add-the-foreign-key-constaint-missing-index-for-con " here"; [5]: https://www.monolune.com/what-is-the-utf8mb4_0900_ai_ci-collation/ " link";
Mysql 용 (INNODB). 열에 대한 프레젠테이션이든 redefinitions 링크하려는
SELECT * FROM information_schema.columns WHERE
TABLE_NAME IN (tb_name','referenced_table_name') AND
COLUMN_NAME IN ('col_name','referenced_col_name')\G
모두 열 정의가 비교 및 확인
>. 동일한 COLUMN_TYPE (길이), 동일한 콜라티온
같은 헬프룰 할 수 있습니다
set foreign_key_checks=0;
ALTER TABLE tb_name ADD FOREIGN KEY(col_name) REFERENCES ref_table(ref_column) ON DELETE ...
set foreign_key_checks=1;
이 때문에 이 질문에 soundmixer. MyISAM 테이블 referenced 가 발생할 수있는 때 오류 엔진 (즉 모든 모델을 사용하여 데이터베이스에 변환하십시오 장고 innodb 테이블과 빠른 방법을 제공합니다. https://stackoverflow.com/a/15389961/2950621
S # 39 라는 관리 명령, 장고 it& convert_to_innodb.