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.