web-dev-qa-db-fra.com

Problème de requête: il ne peut y avoir qu'une seule colonne automatique

Quelqu'un peut-il me dire ce qui ne va pas avec cette définition de table.
La version MySQL est 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
10
Nifle

Cela fonctionnera apparemment avec MyISAM comme moteur de stockage, non innové, si vous pouvez vivre avec cela.

Une autre façon de faire fonctionner est si vous échangez des lieux de queue et idx dans la déclaration principale.

12
Gustav Barkefors

Vous pouvez également donner idx sa propre clé si vous préférez avoir queue d'abord dans le PK. Notez l'addition de la ligne 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
Matthew Read