Maria DB에서 외부 키를 삭제할 수 없습니다.
show create table USers; 그러면 그 결과를 얻을 수 있습니다.
CREATE TABLE `USERS` (
`UR_ID` bigint(20) NOT NULL,
`DEPT_ID` bigint(20) DEFAULT NULL,
`DN_ID` bigint(20) NOT NULL,
`CREATED_BY` varchar(45) NOT NULL,
`LAST_UPDATED_BY` varchar(45) NOT NULL,
`LAST_UPDATED_DT` datetime NOT NULL,
`UR_LOGIN_NAME` varchar(255) NOT NULL,
`TRANS_ID` bigint(20) DEFAULT NULL,
PRIMARY KEY (`UR_ID`),
UNIQUE KEY `Uk11` (`UR_LOGIN_NAME`),
KEY `SYS_C0018877` (`UR_ID`),
KEY `SYS_C0018878` (`DEPT_ID`),
KEY `SYS_C0018879` (`DN_ID`),
**KEY `SYS_C0018880` (`CREATED_BY`),**
KEY `SYS_C0018881` (`LAST_UPDATED_BY`),
KEY `SYS_C0018882` (`LAST_UPDATED_DT`),
KEY `SYS_C0018883` (`UR_LOGIN_NAME`),
CONSTRAINT `fk_USERS_2` FOREIGN KEY (`DN_ID`) REFERENCES `DESIGNATION` (`DN_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
이제 외부 키 CREATED_를 삭제합니다.ALTER TABLE Users drop foreign key SYS_C0018880; ERROR 1025(HY000):'.dbname/USER'의 이름을 '.dbname/#sql2-3ea-2c'로 변경하는 동안 오류가 발생했습니다(errno: 152).
또, 사용했습니다.
ALTER TABLE 사용자가 작성한 외부 키를 드롭합니다.작성자
하지만 또 같은 오류가 발생했다.
'.dbname/USER'의 이름을 '.dbname/#sql2-3ea-2c'로 변경하는 동안 오류가 발생했습니다(errno: 152).
이 외부키를 어떻게 드롭할 수 있는지, 가능하다면 KEY가 무엇인지 공유해 주세요.SYS_C0018880
(CREATED_BY
). desc table_name에서 이 결과가 나왔기 때문에 이 키가 외부 키라는 것을 알았습니다.
| DN_ID | bigint (20) | NO | MUL | NULL | | | CREATED _BY | varchar (45) | NO | MUL | NULL || LAST_UPDATED_BY | varchar (45) | NO | MUL | NULL || LAST_UPDATED_DT | datetime | NO | MUL | 특수 |
기본적으로는 MariaDB는 외부 키를 지정하지 않으면 _ibfk를 외부 키의 이름에 추가합니다.따라서 다음 코드 형식을 사용하여 외부 키 이름을 지정하지 않은 외부 키를 삭제하십시오.
ALTER TABLE table_name DROP FOREIGN KEY foreign_key_ibfk;
근본 원인은 내부 InnoDB 사전의 데이터 디렉토리 및/또는 테이블에 있는 파일 #sql2-3ea-2c*입니다.그러면 USER 테이블에서 ALTER 작업이 방지됩니다.구글에서 '고아가 된 innodb 테이블 제거'를 검색하면 다음과 같은 지시사항을 확인할 수 있습니다.
외부 키가 아닌 키 이름 사용
ALTER TABLE USERS DROP KEY SYS_C0018880
언급URL : https://stackoverflow.com/questions/36418695/can-not-drop-foreign-key-in-maria-db
'programing' 카테고리의 다른 글
어떻게 하면 발의 감지를 개선할 수 있을까요? (0) | 2022.09.19 |
---|---|
휴지 상태, @SequenceGenerator 및 allocationSize (0) | 2022.09.18 |
같은 테이블의 한 열에서 다른 열로 값 복사 (0) | 2022.09.18 |
JavaScript ES6 클래스의 개인 속성 (0) | 2022.09.18 |
MySQL 테이블에 이미지를 삽입하면 NULL이 됩니다. (0) | 2022.09.18 |