쿼리 문제 : 하나의 자동 열만있을 수 있습니다


10

누군가이 테이블 정의에 어떤 문제가 있는지 알려주십시오.
mysql 버전은 5.1.52-log입니다.

root@localhost spoolrdb> create table spoolqueue (
                             queue int,
                             idx bigint not null auto_increment,
                             status smallint,
                             querystring varchar(2048),
                             contenttype varchar(255),
                             characterencoding varchar(16),
                             body text,
                             primary key(queue,idx)
                             );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

1
이 질문은 MyISAM 고유의 MySQL gotcha를 제공하기 때문에 (+1) 좋아합니다. 포기하고 재 설계하는 것보다 항상 왜 더 나은지 묻는 것.
RolandoMySQLDBA 2016 년

답변:


12

MyISAM과 InnoDB가 아닌 스토리지 엔진으로 작동합니다.

당신의 장소를 바꿀 경우 작업에 그것을 얻을 수있는 또 다른 방법입니다 queueidx기본 키 선언합니다.


1

PK에서 첫 번째 idx를 선호하는 경우 자체 키를 제공 할 수도 있습니다 queue. index(idx)라인 추가에 유의하십시오 .

create temporary table spoolqueue (
    queue int,
    idx bigint not null auto_increment,
    status smallint,
    querystring varchar(2048),
    contenttype varchar(255),
    characterencoding varchar(16),
    body text,
    primary key(queue,idx),
    index(idx)
);

-1

기본 키에서 큐 필드를 제거하십시오. 원하는 경우 대기열 열을 색인 할 수 있습니다


4
그런 종류의 테이블의 요점을 패배시킵니다.
Nifle

4
그게 아 케르가 피하려고하는 것임을 알고 있습니까?
jcolebrand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.