Query problema: non ci può essere solo una colonna di auto
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
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