Проблема с запросом: может быть только один автоматический столбец


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
Мне нравится этот вопрос (+1 для вас), потому что он представляет гадж MySQL, который уникален для MyISAM. Спрашивать о том, почему всегда намного лучше, чем сдаться и изменить дизайн.
RolandoMySQLDBA

Ответы:


12

Очевидно, это будет работать с MyISAM в качестве механизма хранения, а не с InnoDB, если вы можете жить с этим.

Еще один способ заставить его работать, если поменять местами queueи idxв объявлении первичного ключа.


1

Вы также можете дать 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.