MySQL Workbench에서 외래 키 생성 오류


9

MySQL Workbench에서 내 데이터베이스로 스키마 변경 사항을 동기화하려고합니다. 외래 키를 만들려고 할 때 다음 오류가 발생합니다.

Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)

실행하려는 명령문은 다음과 같습니다.

ALTER TABLE `tomato`.`ing_allergy_ingredient` 
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

이 오류의 의미에 대한 아이디어가 있습니까?

답변:


11

이미 다른 곳에서 사용 된 이름으로 제약 조건을 추가하려고하면이 메시지가 나타납니다.

게시물 에 따르면 다음 과 같이 제약 조건을 확인할 수 있습니다.

만들려는 테이블에 외래 키 제약 조건이 포함되어 있고 해당 제약 조건에 대한 고유 이름을 제공 한 경우 데이터베이스 내에서 고유해야합니다. 이 이름을 사용하여 해당 이름이 사용 중인지 확인하십시오.

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;

외래 키는이 쿼리에 나타나지 않았지만 테이블을 볼 때 동일한 이름의 인덱스가있었습니다. MySQL Workbench의 동기화와 관련된 버그라고 생각합니다. 최신 버전 (5.2.31)을 다운로드했는데 문제가 해결되었습니다.
BenV
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.