MySQL에서 외부 키를 삭제할 수 없음
저는 코스와 강사 사이에 1대 1로 많은 관계를 맺었는데, 그 관계를 끊고 싶었습니다.제가 선생님을 떨어뜨리려고 했을 때코스 테이블에 있는 아이디는 그것이 나에게 말했습니다.외국 열쇠라서 떨어뜨릴 수가 없었어요.그리고 나서 저는 다음과 같이 하기로 결정했습니다.
ALTER TABLE course DROP FOREIGN KEY instructorID
하지만 다음 오류가 발생했습니다.
#1091 - Can't DROP 'InstructorID'; check that column/key exists
저는 이 오류가 무엇을 의미하는지 이해하지 못합니다.내가 무엇을 잘못하고 있습니까?
실행하십시오.SHOW CREATE TABLE course;확실한 강사가 되기 위해ID는 외부 키 제약 조건의 이름입니다.
추가:이 오류는 MySQL이 "Instructor"라는 외부 키 제약 조건을 검색함을 의미합니다.ID"이지만 이러한 이름에는 제약 조건이 없습니다. 열 이름일 수 있지만 외부 키를 삭제하려면 제약 조건 이름을 사용해야 합니다.
실행 후SHOW CREATE table course;당신은 일반적으로 아래의 하나와 같은 fk 기호를 찾아야 합니다:
(course_ibfk_1)
사용 중인 mysql 버전에 따라 다를 수 있으며 다음과 같이 fk 기호를 사용하여 외부 키를 삭제합니다.
alter table course drop foreign key course_ibfk_1;
외부 키 제약 조건'과 '키'를 삭제해야 합니다.
Alter Table <table name> drop foreign key <constraint_name>
Alter table <table name> drop key <column name>
만약 여러분 중 누구라도 여전히 할 수 없다면.DROP식탁이거 먹어봐요.이것을 실행하면 모든 세부 정보를 볼 수 있습니다.
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'ReferenceTableName'; <-- change only this
만약 당신이 단지 제약들을 보고 싶다면.
SELECT
CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'ReferenceTableName';
외부 키 제약 조건을 삭제하려면:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY {Constraint/Key_name};
SQL Server / Oracle / MS 액세스의 경우:
ALTER TABLE Orders DROP CONSTRAINT {Constraint/Key_name};
당신이 강사를 그만두지 못하는 이유ID는 Foreign 키의 제약조건 이름을 사용해야 하기 때문입니다. KevDev는 제약조건 이름을 찾기 위해 'SHOW CREATE TABLE course'를 실행해야 한다고 지정했습니다. 그렇게 한 후 Foreign 키를 삭제할 수 있습니다.그러나 거기서 더 기다려, '키'는 여전히 삭제되어야 하는 뒤에 남아 있습니다.'SHOW CREATE TABLE' 과정을 실행하여 키가 아직 남아 있는지 확인할 수 있습니다.아직 있는지 확인한 후 바비가 조언한 것을 수행합니다.'테이블 드롭 키 변경'을 클릭하여 외부 키를 완전히 제거했습니다.
'string'을(를) 삭제할 수 없습니다. 열/키가 있는지 확인하십시오. ALTER TABLEaccreditor_architectures떨어지다string레일의 루비에 있는 데이터베이스에서 열을 제거할 때 터미널에 오류 표시
언급URL : https://stackoverflow.com/questions/25079645/cant-drop-foreign-key-in-mysql
'programing' 카테고리의 다른 글
| @스프링 부츠테스트 vs @WebMvcTest & @DataJpaTest & 서비스 유닛 테스트, 가장 좋은 것은 무엇입니까? (0) | 2023.08.05 |
|---|---|
| cast_sender.js 오류: 리소스를 로드하지 못했습니다. net::크롬에서 ERR_실패 (0) | 2023.08.05 |
| Oracle DATE 열에 저장된 잘못된(손상된) 값을 식별하는 방법 (0) | 2023.08.05 |
| SQL Server 구성 관리자 오류: WMI 제공자에 연결할 수 없습니다. (0) | 2023.08.05 |
| 대량으로 준비된 문을 삽입하는 동안 JavaScript MySQL 오류가 발생했습니다. (0) | 2023.08.05 |