MySQL의 ‘자동 증가 열은 하나만있을 수 있습니다’오류를 어떻게 수정합니까?
CREATE TABLE book (
id INT AUTO_INCREMENT NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
답변
내 MySQL은 “잘못된 테이블 정의입니다. 자동 열은 하나만있을 수 있으며 키로 정의해야합니다. “그래서 아래의 기본 키를 추가했을 때 작동하기 시작했습니다.
CREATE TABLE book (
id INT AUTO_INCREMENT NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL,
primary key (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
답변
전체 오류 메시지가 울립니다.
오류 1075 (42000) : 잘못된 테이블 정의입니다. 자동 열은 하나만있을 수 있으며 키로 정의해야합니다.
따라서 필드에 추가 primary key
하십시오 auto_increment
.
CREATE TABLE book (
id INT AUTO_INCREMENT primary key NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
답변
“키”가 반드시 기본 키를 의미하는 것은 아닙니다 . 다음과 같이 작동합니다.
CREATE TABLE book (
isbn BIGINT NOT NULL PRIMARY KEY,
id INT NOT NULL AUTO_INCREMENT,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL,
INDEX(id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
이것은 인위적인 예이며 아마도 최상의 아이디어는 아니지만 특정 경우에 매우 유용 할 수 있습니다.
답변
CREATE TABLE book (
id INT AUTO_INCREMENT primary key NOT NULL,
accepted_terms BIT(1) NOT NULL,
accepted_privacy BIT(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1