1075: Incorrect table definition; there can be only one auto column and it must be defined as a key (잘못된 테이블 정의. auto 컬럼은 하나만 가능하며 키로 정의해야 함)
MySQL의미
AUTO_INCREMENT 규칙을 위반해 테이블 정의가 유효하지 않다. 테이블에는 자동 증가 컬럼이 하나만 있을 수 있으며, 그 컬럼은 키(PRIMARY KEY 또는 UNIQUE/인덱스)의 일부여야 한다.
원인
AUTO_INCREMENT 컬럼을 두 개 이상 정의했거나, AUTO_INCREMENT 컬럼을 어떤 키(인덱스)에도 포함하지 않은 경우다. CREATE TABLE 또는 ALTER TABLE 중에 발생한다.
해결 방법
AUTO_INCREMENT 컬럼을 하나만 두고 키의 일부로 만든다: CREATE TABLE t (id INT AUTO_INCREMENT PRIMARY KEY, ...); 기존 테이블을 수정하려면 먼저 컬럼을 키에 추가한다: ALTER TABLE t ADD PRIMARY KEY (id); 이후 AUTO_INCREMENT를 정의한다. auto 컬럼이 두 개 이상 필요하다면 설계를 재검토한다. MySQL은 이를 지원하지 않는다.
같은 데이터베이스의 다른 항목
- 1615Prepared statement needs to be re-prepared (prepared statement 재준비 필요)
- 1553Cannot drop index needed in a foreign key constraint (외래 키 제약 조건에 필요한 인덱스 삭제 불가)
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (로컬 데이터 로드가 비활성화됨. 클라이언트와 서버 양쪽에서 활성화 필요)
- 1055Expression not in GROUP BY (only_full_group_by) (GROUP BY에 없는 표현식)
- 1267Illegal mix of collations
- 1030Got error N from storage engine
- 1197Multi-statement transaction required more than 'max_binlog_cache_size' (다중 문장 트랜잭션이 'max_binlog_cache_size'보다 많은 공간을 요구함)