Domanda

Qualcuno può dirmi che cosa c'è di sbagliato con questa definizione di tabella.
versione di 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
È stato utile?

Soluzione

Questo a quanto pare il lavoro con MyISAM come motore di storage, non InnoDB, se si può vivere con questo.

Un altro modo per farlo funzionare è se si scambia luoghi di queue e idx nella dichiarazione chiave primaria.

Altri suggerimenti

Si può anche dare un proprio idx chiave se si preferisce avere queue prima nel PK. Si noti l'aggiunta della linea 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)
);

Provare a rimuovere il campo di coda dalla chiave primaria. È possibile indicizzare la colonna coda se si desidera

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top