2017-01-03 9 views
1

Это код, который я использовал:добавить первичный ключ, который увеличивается авто, начиная с 1001

ALTER TABLE `event_all_copy` 
ADD `id` INT(5) AUTO_INCREMENT = 1001 PRIMARY KEY; 

Я получаю следующее сообщение об ошибке:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AUTO INCREMENT = 1001 PRIMARY KEY' at line 1

код будет работать нормально, если я покину выключить AUTO_INCREMENT = 1001. Если добавить id затем изменить его:

ALTER TABLE event_all_copy AUTO_INCREMENT = 1001; 

это не меняет существующие значения.

+0

Если значение id имеет какое-либо значение, выходящее за рамки базы данных, не используйте auto-increment. – Strawberry

ответ

0

Вы должны изменить таблицу говоря это начать с 1000:

ALTER TABLE `event_all_copy` AUTO_INCREMENT = 1000; 

Таким образом, ваш запрос будет:

ALTER TABLE `event_all_copy` ADD `id` INT(5) PRIMARY KEY; 
ALTER TABLE `event_all_copy` AUTO_INCREMENT = 1000; 

У вас не может быть AUTO_INCREMENT значение в ADD que гу. Два запроса должны быть двух отдельных. Чтобы изменить существующие значения, это легко. Вы можете сделать:

UPDATE `event_all_copy` SET `id` = `id` + 1000; 

AUTO_INCREMENT обновленное значение будет установлено только для вновь введенных записей.

+0

Если я не делаю AUTO_INCREMENT в ADD-запросе, я получаю сообщение об ошибке, потому что все значения равны 0 или NULL (в любом случае дублируются). Ваш код UPDATE работал отлично! Не думал об этом. БЛАГОДАРЯ!! – AVD

+0

@AVD Отлично. Рад помочь вам ... –

0

Попробуйте это после определения структуры таблицы:

ALTER TABLE tablename AUTO_INCREMENT = 1000; 

 Смежные вопросы

  • Нет связанных вопросов^_^