source

열을 삭제하려고 하면 오류 1025(HY000)가 발생합니다....(오류: 150) 이름 변경 시 오류 발생

manysource 2023. 9. 17. 13:17

열을 삭제하려고 하면 오류 1025(HY000)가 발생합니다....(오류: 150) 이름 변경 시 오류 발생

열을 삭제하기 위해 artertable 명령을 실행하려고 합니다.

ERROR 1025 (HY000): Error on rename of .... (errno: 150).  

제가 정확하게 이해했다면 외국 열쇠 문제인데 어떻게 고쳐야 할지 감이 안 잡힙니다.누가 그렇게 친절하게 어떻게 작동하는지 말해줄 수 있나요?

테이블 작성에 사용되는 코드:

CREATE TABLE categories(
cid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
assets_id INT NOT NULL,
cat_name VARCHAR(30) NOT NULL,
INDEX(assets_id),
FOREIGN KEY (assets_id) REFERENCES asset(aid) ON UPDATE CASCADE

)
ENGINE=INNODB DEFAULT CHARSET=utf8;

alter 명령:

ALTER TABLE categories DROP COLUMN assets_id;

테이블 범주가 완전히 비어 있습니다.따라서 캐스케이드 제한을 상쇄할 정보가 없습니다.

열 assets_id를 삭제하려면 어떻게 해야 합니까?

사용하다SHOW CREATE TABLE categories제약 조건의 이름을 표시합니다.

아마도 그럴 것입니다.categories_ibfk_1

이름을 사용하여 외부 키를 먼저 떨어뜨린 다음 열을 놓습니다.

ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;

저에게 있어서 문제는 다른 것이었습니다.

그 사이트는 모든 사람이 (우연히) 접속할 수 있었습니다.그래서 업데이트 스크립트가 여러 번 시작되었습니다.그것은 이와 같은 오류를 던지는 인종적 상황을 야기시켰습니다.

-> 모든 스크립트가 완료될 때까지 사이트에 한 번만 액세스할 수 있도록 하십시오!

언급URL : https://stackoverflow.com/questions/5948704/attempting-to-drop-a-column-yields-error-1025-hy000-error-on-rename-of