며칠 전에 데이터베이스를 utf8에서 utf8mb4로 마이그레이션했습니다. 이전 때문에 대부분의 기본 키는 문자 당 추가 바이트로 인해 VARCHAR(255)
에서 VARCHAR(191)
으로 업데이트되었습니다.MySQL utf8mb4 외래 키 오류
이제 문제는 기존 테이블을 참조하는 새 테이블에 새 FOREIGN 키를 추가 할 수 없다는 것입니다. 우리는 MySQL의 워크 벤치에 다음과 같은 오류가 발생합니다 :
"참조 된 테이블이 table.id에 대한 호환 유형 후보 열이 없습니다 힌트 :. 원본 열은 참조 테이블이 VARCHAR 인의 VARCHAR (191), PK를 입력있다 (191). "
우리는 콘솔을 통해 외래 키를 추가하려고하면 우리가 얻을 : 외래 키 제약 조건에
최신 FOREIGN KEY ERROR
2014년 2월 13일 10시 27분 51초 126bb3000 오류 외래 키 (fk_id) 참조 테이블 (ID) : 참조 된 열 첫 번째 열 또는 열 유형 테이블과 로 표시 참조 된 테이블에 인덱스를 찾을 수 테이블 테이블/#의 SQL-159_2b2의 참조 된 테이블이 일치하지 않음 제약 조건.
그러나보고 된 오류에서 볼 수 있듯이 두 유형 모두 VARCHAR(191)
으로 정의됩니다.
무엇이 누락 되었습니까?
을했다
내가 명시 적으로 참조 된 컬럼과 같은 데이터 정렬을 사용하는 열 페이지를 변경했습니다를 해결하려면 같은 문제.mysql workbench에서 직접 rodrigos 응답을 적용하고, 테이블을 편집하고, 열로 이동하여 원하는 열 (기본값이지만 명시 적으로)에 대한 두 열의 데이터 정렬을 지금 설정해야합니다. 나쁜 벌레 – sasha