Накрылся MySQL auto_incerment

EM
На сайте с 16.12.2005
Offline
108
616

Здравствуйте, прошу помощи.

В существующую таблицу импортировался большой sql (на 8М через phpmyadmin).

Строки выглядели таким образом:

INSERT IGNORE INTO as_data VALUES ("",1,1,1,0);

INSERT IGNORE INTO as_data VALUES ("",2,1,1,0);
INSERT IGNORE INTO as_data VALUES ("",3,1,1,0);
...

Первое значение - id, которое auto_increment и присваивается мускулом автоматически. Но по каким-то причинам при импорте такого большого файла это не сработало и все строки в бд были импортированы с нулевім id.

Check table сообщает: Found row where the auto_increment column has the value 0

Вопрос как лучше это исправить? Ни repear ни optimize не решили проблему. Может есть вариант обойтись без построчного update для каждой строки?

DV
На сайте с 01.05.2010
Offline
644
#1

UPDATE <таблица> SET <столбец где должен быть инкремент>=1;

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
EM
На сайте с 16.12.2005
Offline
108
#2
DenisVS:
UPDATE <таблица> SET <столбец где должен быть инкремент>=1;

В итоге весь столбец id стал=1...

DV
На сайте с 01.05.2010
Offline
644
#3

ALTER TABLE <таблица> AUTO_INCREMENT = 1;

EM
На сайте с 16.12.2005
Offline
108
#4
DenisVS:
ALTER TABLE <таблица> AUTO_INCREMENT = 1;

Решил таким способом: удалил существующий индекс, создал новый столбец id2 и назначил ему auto_incerment. Удалил старый id и переуменовал новосозданный.

Одна фигня - id пошли с 1, чем "подпортил" таблицу.

B
На сайте с 25.02.2009
Offline
68
#5

перекопировать всю таблицу с заранее установлеными id и auto_increment, несложный код в цикле при большой базе по 100 строк копировать, потом новую таблицу переимновать в старую

Бесплатная CMS LitePublisher это блог, вики, тикет система, голосование (http://litepublisher.ru/) на высокой скорости с минимум памяти

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий