sourcecode

errno: 150 "외부 키 제약 조건이 잘못 형성되었습니다") MariaDB

copyscript 2022. 9. 19. 23:28
반응형

errno: 150 "외부 키 제약 조건이 잘못 형성되었습니다") MariaDB

다음 스크립트를 실행하는 경우:

 DROP TABLE IF EXISTS `schemaname`.`tablename` ;

 CREATE TABLE IF NOT EXISTS `schemaname`.`tablename` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `ip` VARCHAR(25) NOT NULL,
   `address` TEXT NULL DEFAULT NULL,
 PRIMARY KEY (`id`))
 ENGINE = InnoDB
 DEFAULT CHARACTER SET = latin1;

다음 오류가 반환됩니다.

Error Code: 1005. Can't create table `schemaname`.`tablename` (errno: 150 "Foreign key constraint is incorrectly formed")

이름은 같지만 구조가 다른 테이블이 있어서 삭제했고 외부 키가 있는 테이블도 삭제했습니다.

다른 이름으로 작성하려고 하면 동작합니다.삭제한 테이블과 같은 이름의 테이블을 만들 수 없습니다.

삭제한 테이블 간의 외부 키 관계를 찾아 삭제합니다.

테이블을 삭제했을 때 MariaDB가 자동으로 처리하지 않은 것 같습니다.

외부 키 관계 검색:

SELECT
  CONSTRAINT_NAME, 
  TABLE_NAME, 
  COLUMN_NAME, 
  REFERENCED_TABLE_NAME, 
  REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_NAME = '<table>' OR TABLE_NAME = '<table>';

관계 삭제:

DROP FOREIGN KEY <constraint_name>;

언급URL : https://stackoverflow.com/questions/27448313/errno-150-foreign-key-constraint-is-incorrectly-formed-mariadb

반응형