2013-03-28 2 views
1

Можно ли отключить автоинкремент, чтобы я мог перенумеровать поле без ИИ?Поле нумерации отключить автоинкремент

Я пытаюсь, но не кажется, что это работает должным образом:

ALTER TABLE `x`.`billadr` 
CHANGE COLUMN `AutoInc` `AutoInc` 
INT(11) NOT NULL ; 
+1

Почему вы хотите перенумеровать его без ИИ? –

+0

Я хочу контролировать способ изменения нумерации клиента. – user2132252

+0

Даже если столбец auto_increment вы все же можете указать значение этого colulmn –

ответ

4

Это то, что вы ищете?

ALTER TABLE `x`.`billadr` AUTO_INCREMENT = 1234; 

Если вы хотите удалить AUTO_INCREMENT затем просто переопределить столбец без него:

ALTER TABLE `x`.`billadr` CHANGE `AutoInc` `AutoInc` INT(11) NOT NULL 

В противном случае создать столбец новый, копировать/пронумеровать по мере необходимости.

+0

Итак, я могу установить, где начинается автоматический приращение? – user2132252

+0

@ user2132252 Да, но * «Вы не можете сбросить счетчик на значение, меньшее или равное тому, которое уже было использовано» * ([документация] (http://dev.mysql.com/doc/refman/5.0/ ru/alter-table.html)) – Kermit

+0

Я оставлю это здесь: как-то мой 'auto_increment' застрял в 18446744073709551615 (2^63-1), и запрос' AUTO_INCREMENT = N' не изменил бы этого. Удалив атрибут auto_increment из столбца PK, как показано, добавив его, он снова зафиксировал его. – zneak

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