[SQL] 테이블을 삭제할 수 없습니다 : 외부 키 제약이 실패
SQL테이블을 삭제할 수 없습니다 : 외부 키 제약이 실패
MySQL의에서 나는 테이블을 드롭합니다. 나는 많은 것들을 시도했지만 나는 테이블 이름 bericht이 삭제 될 수 없다는 오류가 계속. 이것은 내가지고있어 오류입니다 :
어떻게하면이 테이블을 삭제합니까?
해결법
-
==============================
1.이 트릭을 수행해야합니다
이 트릭을 수행해야합니다
SET FOREIGN_KEY_CHECKS=0; DROP TABLE bericht; SET FOREIGN_KEY_CHECKS=1;
다른 사람들이 지적하는 바와 같이,이 그것의 무슨 질문에 요청에도 불구하고, 거의 절대 당신이 원하는 없습니다. 더 안전 솔루션은 bericht을 삭제하기 전에 bericht에 따라 테이블을 삭제하는 것입니다. 이 작업을 수행하는 방법에 대한 CloudyMarble 답변을 참조하십시오. 내가 또는 삭제하고 데이터베이스 자체를 다시 할 수 싶지 않을 때 나는 데이터베이스의 모든 테이블을 드롭 내 게시물에 배쉬와 방법을 사용합니다.
다른 테이블은 삭제하려고하고 InnoDB의 데이터베이스 엔진을 사용하는 테이블에 대한 외래 키 제약 조건이있는 경우, # 1217 오류가 발생합니다. 다음 구속을 확인하고 일시적으로 비활성화가이 솔루션을 다시는-수 있습니다. 더 설명서를 읽어 보시기 바랍니다. 반드시 그렇지 않으면 당신은 깨진 상태로 데이터베이스를 떠날 수, 외래 키 묶기와 bericht에 따라 테이블의 필드를 삭제합니다.
-
==============================
2.이 시도:
이 시도:
SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'YourTable';
이 표는 당신이 테이블을 드롭 할 수있을 것입니다 이러한 참조, 또는이 표 참조 데이터 세트 데이터 세트를 삭제하면, 삭제하려는 테이블에 대한 참조를 가지고있는 당신을 제공한다
-
==============================
3.사용은 외래 키를 볼 수 테이블 tbl_name를을 만들 보여
사용은 외래 키를 볼 수 테이블 tbl_name를을 만들 보여
당신은 외래 키를 드롭이 구문을 사용할 수 있습니다 :
ALTER 표 tbl_name에 DROP FOREIGN KEY의 fk_symbol
자세한 내용은 여기에서도 있습니다 (프랭크 Vanderhallen 게시물을 참조) http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
-
==============================
4.이것은 아마도 다른 스키마에 해당 오류를 얻고있는 이유를 같은 테이블이 있습니다.
이것은 아마도 다른 스키마에 해당 오류를 얻고있는 이유를 같은 테이블이 있습니다.
당신은 부모 행 먼저 자식 행을 삭제해야합니다.
-
==============================
5.나는이 잠시 동안 부실 실현하고 답변을 선택했다, 그러나 대안에 대한 외래 키가 NULL이 다음 DELETE SET NULL의 ON 선택할 수 있도록하는 방법에 대해 설명합니다.
나는이 잠시 동안 부실 실현하고 답변을 선택했다, 그러나 대안에 대한 외래 키가 NULL이 다음 DELETE SET NULL의 ON 선택할 수 있도록하는 방법에 대해 설명합니다.
기본적으로, 당신의 테이블과 같이 변경해야합니다 :
ALTER TABLE 'bericht' DROP FOREIGN KEY 'your_foreign_key';
ALTER TABLE 'bericht' ADD CONSTRAINT 'your_foreign_key'FOREIGN KEY ( 'column_foreign_key') 참조 'other_table'( 'column_parent_key') ON UPDATE CASCADE ON DELETE SET NULL의;
개인적으로 나는 다른 접근 방식을 지시 할 수 있으며, 불필요한 합병증을 피하기 위해 "DELETE SET NULL의 ON"모두 "ON UPDATE CASCADE"뿐만 아니라 사용하지만 당신의 세트를 추천 할 것입니다.
도움이 되었기를 바랍니다.
from https://stackoverflow.com/questions/11100911/cant-drop-table-a-foreign-key-constraint-fails by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 수 있도록 자바 스크립트 라이브러리 JSON 데이터에 대한 쿼리 SQL과 같은? [닫은] (0) | 2020.07.22 |
---|---|
[SQL] 일반적으로, 데이터베이스의 모든 테이블에는 PK로 사용할 정체성 필드를해야합니까? (0) | 2020.07.22 |
[SQL] 어떻게 Heroku가에 일반 텍스트 포스트 그레스 데이터베이스 덤프를받을 수 있나요? (0) | 2020.07.22 |
[SQL] 그것은 MySQL의 뷰에 데이터를 삽입 할 수 있습니까? (0) | 2020.07.22 |
[SQL] SQL Server를 사용하여 많은 관계로 하나 만들기 (0) | 2020.07.22 |