Задать вопрос
heksen
@heksen

Почему при удалении значения не присваеваеться последнее id?

Вообщем такой вопрос. Есть таблица. В ней есть поле id с автоприбавлением. Почему например при удалении последнего значения из таблицы, и добавлении нового приписывается новый id, а не id удаленного элемента. И можно-ли это как-то исправить?
  • Вопрос задан
  • 2535 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Перестаньте пожалуйста помечать вопросы о базах данных тегами C++ и QT.
Ответ написан
Комментировать
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Исправить можно, но не нужно. Потому как это сильно завалит производительность.

При 32 разрядном id будет два миллиарда значений, при 64 разрядном - число с 18 нулями на конце.
Ответ написан
Комментировать
Vinatorul
@Vinatorul
Developer
1) Это вопрос скорее по SQL, а не по Qt, и уж точно не по C++
2) Скорее всего у таблицы стоит автоинкремент, посмотрите настройки идентификатора у столбца ID

Но отключать автоинкремент стоит разве что для таблиц-справочников, которые не будут обновляться, и то большой вопрос - зачем.
Ответ написан
Комментировать
gadfi
@gadfi
https://gamega.org
1. jcmvbkbc , прав ─ вопрос по бд, на каком языке написана программа обращающееся к бд неважно
2. указывайте бд
3. исправить можно, но зачем ?

учитывая что в тегах указан qt могу предположить что используете sqlite (если мне не изменяет память в qt его можно юзать из коробки, могу ошибаться на с очень давно не пишу), если да то при создании таблицы просто не пишите id integer primary key autoincrement а просто id integer primary key
но сначала задумайтесь действительно ли вам это нужно?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы