|
|
|
| В таблице первое поле имеет тип auto-increment. Допустим есть такие записи:
1 - ааа
2 - ббб
3 - ввв
5 - ггг
Как можно добавить новую запись, чтобы она добавилась как 4 - ххх, т.е. на место пропущеной.
Пока что у меня добавляется как 6 - ххх, т.е. неиспользованый индекс остается.
Вставляю так: INSERT INTO 'TABLE1' VALUES ('', 'ххх');
Или нужно сортировать по этой колонке, искать пропущеные и вставлять на их место? | |
|
|
|
|
|
|
|
для: Хулиган
(12.07.2006 в 16:56)
| | А зачем? | |
|
|
|
|
|
|
|
для: Loki
(12.07.2006 в 18:05)
| | для автоматизации.
а если незачем, то какой тогда смысл в auto-increment? | |
|
|
|
|
|
|
|
для: Хулиган
(12.07.2006 в 18:27)
| | Смысл auto_increment - создавать неповторяющиеся ключи.
А Вы хотите их повторять. | |
|
|
|
|
|
|
|
для: Хулиган
(12.07.2006 в 16:56)
| | Как я понял, запись 4 - ххх была удалена. Прямого пути я не вижу. Можно создать вторую таблицу и записать туда данные из первой. Тогда порядок индексирования восстановится. Пятая запись станет четвертой, а шестая пятой т.д. Потом можно будет очистить первую таблицу и перегнать туда данные из второй. | |
|
|
|
|
|
|
|
для: Alex Kraft
(12.07.2006 в 19:38)
| | ключи я повторять не хочу: у меня нет ключа 4, чтобы он повторился. Хотел вставлять отсутствующий ключ.
Ну раз это невозможно, придется отказаться.
или делать выборку по этому полю ascening и искать первый пропущеный и добавлять запись с номером, равным пропущеному. | |
|
|
|