web-dev-qa-db-ja.com

クエリの問題:自動列は1つしかありません

誰かがこのテーブル定義の何が問題になっているのか教えてください。
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
10
Nifle

これは、もしあなたがそれに耐えられるなら、InnoDBではなく、ストレージエンジンとしてMyISAMで動作するようです。

これを機能させる別の方法は、主キー宣言でqueueidxの場所を入れ替えることです。

12

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
Matthew Read