Задача: В существующую таблицу добавить столбец, автоматически заполнить его от 1 до количества строк в таблице, сделать его ключевым с автоинкрементом. Решение: Исходная таблица Code: mysql> select * from tTable; +------+ | b | +------+ | aa | | ab | | ac | | ad | | ae | | af | | ag | | ah | +------+ 8 rows in set (0.00 sec) Добавляем столбец командой: Code: mysql> alter table tTable add a int; теперь таблица имеет вид Code: mysql> select * from tTable; +------+------+ | b | a | +------+------+ | aa | NULL | | ab | NULL | | ac | NULL | | ad | NULL | | ae | NULL | | af | NULL | | ag | NULL | | ah | NULL | +------+------+ 8 rows in set (0.00 sec) Собственно само автозаполнение: Code: mysql> set @x:=0; update tTable set a=(@x:=@x+1); После чего таблица будет иметь вид Code: mysql> select * from tTable; +------+------+ | b | a | +------+------+ | aa | 1 | | ab | 2 | | ac | 3 | | ad | 4 | | ae | 5 | | af | 6 | | ag | 7 | | ah | 8 | +------+------+ Делаем столбец ключом и автоинкрементом: Code: mysql> alter table tTable change a a int key auto_increment; вид таблицы после изменения Code: mysql> show columns from tTable; +-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | b | char(2) | YES | | NULL | | | a | int(11) | | PRI | NULL | auto_increment | +-------+---------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) 02.08.2012 , Автор: Lennotoecom http://www.opennet.ru/tips/2707_mysql_table_auto_increment.shtml