source

잘못된 접두사 키 MySQL

manycodes 2022. 11. 26. 13:58
반응형

잘못된 접두사 키 MySQL

phpmyadmin으로 테이블을 만드는 데 문제가 있어 다음 오류가 발생합니다.

#1089 - 잘못된 접두사 키, 사용된 키 부분이 문자열이 아니거나 사용된 길이가 키 부분보다 길거나 스토리지 엔진이 고유한 접두사 키를 지원하지 않음

다음 쿼리를 수행합니다.

CREATE TABLE `b2b`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT ,
 `name` VARCHAR(30) NOT NULL ,
 `surnames` VARCHAR(80) NOT NULL ,
 `birthdate` DATE NOT NULL ,
 `drivingdoc` VARCHAR(20) NOT NULL ,
 `acdate` DATE NOT NULL ,
 `countrydoc` VARCHAR(20) NOT NULL ,
 `province` VARCHAR(20) NOT NULL ,
 `locality` VARCHAR(35) NOT NULL ,
 `address` VARCHAR(150) NOT NULL ,
 `number` VARCHAR(20) NOT NULL ,
 `flat` VARCHAR(20) NOT NULL ,
 `door` VARCHAR(20) NOT NULL ,
 `description` VARCHAR(2000) NOT NULL ,
 PRIMARY KEY (`id`(7))) ENGINE = InnoDB;

ubuntu에서 MariaDB를 최소한으로 사용.

문제는 다음과 같습니다.

PRIMARY KEY (`id`(7))

숫자의 일부를 키로 사용할 수 없습니다. 전체를 사용해야 합니다.또, 숫자 타입의 길이를 지정해도 소용없고, 최악의 경우 파손됩니다.

변경 내용:

PRIMARY KEY (`id`)

그 기본 키 구문은 전에 본 적이 없어요.이것을 시험해 보세요.

CREATE TABLE `b2b`.`users` (
 `id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ....
) ENGINE = InnoDB;

아니면 당신이 원한다면

CREATE TABLE `b2b`.`users` (
 `id` BIGINT NOT NULL AUTO_INCREMENT,
   ....
 PRIMARY KEY (id) 
) ENGINE = InnoDB;

SQL에 몇 가지 오류가 있으므로 이 SQL과의 차이를 찾아보십시오.

 CREATE TABLE  `b2b`.`users` ( `id` INT(7) NOT NULL AUTO_INCREMENT ,
 `name` VARCHAR(30) NOT NULL ,
 `surnames` VARCHAR(80) NOT NULL ,
 `birthdate` DATE NOT NULL ,
 `drivingdoc` VARCHAR(20) NOT NULL ,
 `acdate` DATE NOT NULL ,
 `countrydoc` VARCHAR(20) NOT NULL ,
 `province` VARCHAR(20) NOT NULL ,
 `locality` VARCHAR(35) NOT NULL ,
 `address` VARCHAR(150) NOT NULL ,
 `number` VARCHAR(20) NOT NULL ,
 `flat` VARCHAR(20) NOT NULL ,
 `door` VARCHAR(20) NOT NULL ,
 `description` VARCHAR(255) NOT NULL ,
 PRIMARY KEY (`id`)) ENGINE = InnoDB;

언급URL : https://stackoverflow.com/questions/34095444/incorrect-prefix-key-mysql

반응형