반응형
데이터베이스를 가져 오려고하면이 오류가 발생합니다.
SQL query:
ALTER TABLE `bid`
ADD CONSTRAINT `bid_ibfk_4` FOREIGN KEY (`auction_contact_id`) REFERENCES `auction_contact` (`auction_contact_id`),
ADD CONSTRAINT `bid_ibfk_3` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`)
MySQL said: Documentation
#1826 - Duplicate foreign key constraint name 'projekt_classics/bid_ibfk_3'
모든 외래 키를 보면 결과적으로 얻습니다.
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE = 'FOREIGN KEY'
결과
def projekt_classics bid_ibfk_2 projekt_classics bid FOREIGN KEY
def projekt_classics bid_ibfk_3 projekt_classics bid FOREIGN KEY
def projekt_classics car_ibfk_1 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_3 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_4 projekt_classics car FOREIGN KEY
def projekt_classics car_brand_ibfk_1 projekt_classics car_brand FOREIGN KEY
SQL에서 bid_ibfk_3
제약 조건을 검색하면 1 회만 표시됩니다.
모든 데이터는 가져온 데이터베이스에 있지만이 오류를 피할 수있는 방법이 궁금합니다.
수정 : First dropping all the tables runs the query without problems. I export my database using PHPmyadmin. 오류가 다시 생성하기 전에 아직 삭제되지 않은 외래 키 제약 때문이라고 생각합니다.
해결 방법
쿼리 결과를 보면 bid_ibfk_3
이미 존재 하는 외래 키입니다. 실제로 결과의 두 번째 행에 있습니다.
def projekt_classics bid_ibfk_2 projekt_classics bid FOREIGN KEY
--the row below is the foreign key that you are trying to create
def projekt_classics bid_ibfk_3 projekt_classics bid FOREIGN KEY
def projekt_classics car_ibfk_1 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_3 projekt_classics car FOREIGN KEY
def projekt_classics car_ibfk_4 projekt_classics car FOREIGN KEY
def projekt_classics car_brand_ibfk_1 projekt_classics car_brand FOREIGN KEY
이것이 이것을 실행하려고 할 때 중복 외래 키 제약 이름을 얻는 이유입니다.
ADD CONSTRAINT `bid_ibfk_3` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`)
실제로 작성하기 전에 작성하려는 외래 키가 존재하지 않는지 먼저 확인하도록 쿼리를 수정할 수 있습니다.
IF NOT EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = DATABASE()
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
AND CONSTRAINT_NAME = 'bid_ibfk_3') THEN
ALTER TABLE `bid` ADD CONSTRAINT `bid_ibfk_3`
FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`);
END IF
참조 페이지 https://stackoverflow.com/questions/39501899
반응형
'MySql' 카테고리의 다른 글
MySQL nodejs를 사용하여 mysql에서 여러 열을 업데이트하는 방법 (0) | 2020.11.02 |
---|---|
MySQL how to install mysql connector to work with visual studio (0) | 2020.11.02 |
MySQL null이 아닌 경우 열 값을 선택하고 그렇지 않으면 다른 열 값을 사용합니다. (0) | 2020.11.01 |
MySQL laravel query with closure (0) | 2020.11.01 |
MySQL DB에 접속하지 않고도 웹 사이트에서 데이터베이스 콘텐츠를 얻을 수 있습니까? (0) | 2020.11.01 |
댓글