Добавить в уже заполненую таблицу поле с AUTO_INCREMENT

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Dion
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2008 (Вс) 16:03

Добавить в уже заполненую таблицу поле с AUTO_INCREMENT

Сообщение Dion » 03.03.2012 (Сб) 17:24

Есть табличка my_table - уже заполненая данными, но возникла острая необходимость добавить в неё поле id c AUTO_INCREMENT.
phpMyAdmin такое поле добавить не позволил - ругается именно что AUTO_INCREMENT...
Я решил создать такую же таблицу (my_table_new), скопировал только структуру и добавил новое поле с Инкрементом.
Заполнить решил запросом:
Код: Выделить всё
INSERT INTO `base`.`my_table_new`
SELECT *
FROM `base`.`my_table`

Но SQL ругается и выдаёт: #1136 - Column count doesn't match value count at row 1, что означает, что ему не нравится что там полей на 1 больше...
Помогите составить запрос, чтобы перенести данные или посоветуйте что-нибудь, моя задача чтобы у каждой записи появилось уникальное значение id и в последствии оно "Инкрементилось", при добавлении новых записей :D
(БД: MySQL)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Добавить в уже заполненую таблицу поле с AUTO_INCREMENT

Сообщение iGrok » 03.03.2012 (Сб) 17:47

Перечисляй поля в запросе явно.

Т.е.
Код: Выделить всё
INSERT INTO `base`.`my_table_new` (`field1`, `field2`,`field3`,...)
SELECT `field1`, `field2`, `field3`, ...
FROM `base`.`my_table`
label:
cli
jmp label

Dion
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2008 (Вс) 16:03

Re: Добавить в уже заполненую таблицу поле с AUTO_INCREMENT

Сообщение Dion » 03.03.2012 (Сб) 18:18

Спасибо большое, вопрос решён:
В INSERT указываем нужные нам поля, в SELECT даже можем оставить * (звёздочку). :wink:

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Добавить в уже заполненую таблицу поле с AUTO_INCREMENT

Сообщение iGrok » 03.03.2012 (Сб) 22:22

Dion писал(а):В INSERT указываем нужные нам поля, в SELECT даже можем оставить * (звёздочку).

Только если в insert ты перечисляешь тот же набор полей в том же количестве и том же порядке, что и в табличке, из которой делается select.
label:
cli
jmp label


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList