반응형
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
반응형
'sourcecode' 카테고리의 다른 글
시간별로 정렬하고 특정 ID 뒤에 n개의 행을 반환하는 MySQL 쿼리 (0) | 2022.09.19 |
---|---|
PHP 계산 기간 (0) | 2022.09.19 |
MySQL 최대 메모리 사용량 (0) | 2022.09.19 |
WHERE 절의 필드 순서가 MySQL의 성능에 영향을 미칩니까? (0) | 2022.09.19 |
Larabel에서 검증 오류/예외를 수동으로 반환하거나 슬로우하려면 어떻게 해야 합니까? (0) | 2022.09.19 |