У меня есть таблица MySQL с полем первичного ключа, на котором есть AUTO_INCREMENT. После прочтения других сообщений здесь я заметил людей с одинаковой проблемой и с разными ответами. Некоторые рекомендуют не использовать эту функцию, другие утверждают, что она не может быть «исправлена».Auto Increment после удаления в MySQL
у меня есть:
table: course
fields: courseID, courseName
Пример: число записей в таблице: 18. Если удалить запись 16, 17 и 18 - я бы ожидать очередной рекорд вошел иметь courseID 16, однако это будет 19, потому что последний введенный идентификатор курса был равен 18.
Мои знания SQL не удивительны, но все равно нужно обновить или обновить этот счет с помощью запроса (или настройки в интерфейсе phpMyAdmin)?
Эта таблица будет относиться к другим в базе данных.
Учитывая все советы, я решил проигнорировать эту «проблему». Я просто удалю и добавлю записи, в то время как автоматическое приращение сделает это. Я думаю, это не имеет большого значения, каково число, поскольку оно используется только как уникальный идентификатор и не имеет (как упоминалось выше) бизнес значение.
Для тех, кого я, возможно, путал с моим оригинальным сообщением: я не хочу использовать это поле, чтобы узнать, сколько записей у меня есть. Я просто хотел, чтобы база данных выглядела аккуратно и имела немного более согласованность.
, что вы ожидали бы случиться, если вы удалили только запись 16? –
Хорошая точка! Я должен был упомянуть. В идеале, сдвиньте все до одного? – OmidTahouri
Я столкнулся с проблемой, которая в некотором роде противоречит вашей проблеме. Другими словами, у меня есть таблица «ENTITY» и таблица «ENTITY_LOG». Каждый раз, когда я вставляю, обновляю или удаляю что-либо из таблицы «ENTITY», я регистрирую эту активность в таблице «ENTITY_LOG» вместе с идентификатором «Id». Недавно пользователь удалил кучу записей в таблице «ENTITY»; и соответствующие записи журнала были сделаны в таблице журналов. Сегодня, когда другой пользователь попытался добавить новую запись в таблицу «ENTITY», сгенерированный «Id» оказался таким же, как ранее удаленный объект! Я использую JdbcTemplate и InnoDB. –