[mysql] 자동 열은 하나만있을 수 있습니다.

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


답변