Re: Как такое сделать
От: CKopT  
Дата: 01.02.06 18:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня есть столбец id типа bingint. На нем стоит авто инкремент.

А>Проблема в следующем... я удаляю часть записей и добавляю новые, но числа инкрементируються как (MAX + 1) как сделать так чтобы например так.

А>Исходная таблица:

А>1
А>2
А>3
А>4
А>5
А>11
А>15
А>18

А>Как происходит после инсерта

А>1
А>2
А>3
А>4
А>5
А>11
А>15
А>18
А>19
А>20
А>21
А>22

А>Надо чтобы было так

А>1
А>2
А>3
А>4
А>5
А>6
А>7
А>8
А>9
А>10
А>11
А>12
А>15
А>18

А>Тоесть несуществующий цифры занимались... бд MySQL 5.0


Добрый вечер. Не знаю насколько Вам это необходимо, но исходя из моего опыта использования автоинкрементного поля в таблицах MS SQL Server, такая задача никогда не возникала. Т.е. автоинкрементное поле требуется для автоматической генерации следующего значения, которое просто будет уникальным.
Кроме того, оно формируется не как MAX+1, а как
<какая-то внутренняя системная величина>+<некий заданный системный шаг>.
Эти системные величины скорее всего относятся к системным величинам открытого сеанса (нечто про это я читал в HELP).
Подытоживая, я бы дополнительно использовал какой-нить другой идентификатор (поле в таблице), отвечающий необходимым требованиям. Есть небольшой пример использования автоинкр. поля совместно с другим полем, содержащим ключевые-порядковые значения (что-то вроде составного ключа)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.