Почему при сохранении записей столбец идентификатора AutoIncrement не начинается с 1?

introducir la descripción de la imagen aquí

id_usuario - ПК , NN и AI

В начале все начиналось с 1, но я удалил все записи и с помощью своей программы на Java сохранил новые, но записи не начинались с 1, они начинались с последнего числа удаленных мной записей .

Почему записи не начинаются с номера 1? Они начинаются с количества записей, которые вы удалили ранее.

7
задан 20.08.2018, 20:05
3 ответа

Ты можешь делать это двумя способами:

  1. Изменять только стоимость AUTO_INCREMENT

ALTER TABLE table_name AUTO_INCREMENT=1

  1. ты Можешь опустошать таблицу восстанавливая ее:

TRUNCATE TABLE table_name;

3
ответ дан 24.11.2019, 12:18
  • 1
    стой, elegí будь как solució n в мой ответ, так как я делаю что-то, чтобы пытаться локально и нуждаюсь в том, чтобы смочь направлять в идентификацию 1, чтобы продолжать пытаться. Не sabí в как показывать ему в базу данных, что я возвратился в 1, спасибо за solució n. explicació n в остальных ответах я понял их совершенно для случая программы producció n. –  RRGT19 02.12.2016, 04:48

Это проистекает того, что это поле - AUTO_INCREMENT. Когда поле - AUTO_INCREMENT, они начинают начиная от nГєmero 1, но однако, если ты удаляешь реестры следующий AUTO_INCREMENT, хотя ты это удалишь, serГЎ следующий за реестром, который ты удалил.

Например, если у тебя есть реестры 1, 2, 3, 4, 5, и ты удаляешь реестр nГєmero 5 AUTO_INCREMENT empezarГЎ в nГєmero 6 для следующей inserciГіn.

ExplicaciГіn porquГ© поле AUTO_INCREMENT функционирует таким образом:

я увидел, что в них demГЎs ответы говорят тебе, как вновь помещать 1 реестры поля AUTO_INCREMENT снова. Однако, базы данных сохраняют id Гєltimo я регистрирую aГ±adido (хотя ты удалишь их) благодаря тому, что он может производить проблемы безопасности и неосновательности данных.

я не рекомендую тебе ни для чего менять идентификации поля AUTO_INCREMENT. В случае, если ты это сделаешь, делай это всегда в среде доказательств и asegurГЎndote, что не может касаться связанных подмостков. Никогда не выполни это в среде producciГіn.

ВїPor quГ©? Очень простой. Поле AUTO_INCREMENT обычно они используются для того, чтобы распределять ID's в элементы твоих подмостков, которые ГљNICOS . ImagГ-nate таблица пользователей, которые регистрируются в тебе aplicaciГіn с полем, пойдите AUTO_INCREMENT, например, как форум тип Stackoverflow.

Сейчас imagГ-nate, что есть три пользователя в базе данных, и что пользователь с идентификацией 1 создает три posts. Каждый post присоединен к этому пользователю 1, следовательно, aparecerГЎ имя создателя.

Позже, ты удаляешь три пользователя таблицы и помещаешь снова стоимость поля AUTO_INCREMENT со стоимостью 1.

Сейчас ты создаешь новый пользователь и, изменив твое поле, пойдите AUTO_INCREMENT, этот новый пользователь регистрирует в базе данных с nГєmero 1. Следовательно, три posts, что создал предыдущий пользователь с идентификацией 1, будут являться связанными с новым пользователем идентификации 1, что не правильно.

Поэтому, я не рекомендую тебе никогда вновь инициализировать стоимость поля AUTO_INCREMENT если только estГ©s страховка, что не будет касаться оставшейся части подмостков в базе данных относительно консистенции данных, не относится (в предыдущем примере tendrГ-схвати неосновательность данных, так как estarГ-an показывая данные errГіneos для пользователя, которому ты распределил идентификацию, что уже habГ - в бывшая распределенная ранее и, которая tenГ - в relaciГіn с другими подмостками).

7
ответ дан 24.11.2019, 12:18
  • 1
    Превосходный informació n, большое спасибо, не sabí ни во что из этого. –  RRGT19 02.12.2016, 05:10
  • 2
    Ну, ничто из этого pasarí если у него есть foreign закон not null :D –  Pablo Contreras 03.12.2016, 08:55
  • 3
    @PabloContreras, Но в этом случае, хотя пользователь был уволен действительно не borrarí схвати этот пользователь базы данных, если нет, что просто не он darí эксперт получил доступ в платформу. –  Francisco Romero 03.12.2016, 18:19

Внутри драйвер базы данных сохраняет реестр Гєltimo Пойдите, что autoincrementГі, чтобы инициализироваться с 1, он снова с нею instrucciГіn

ALTER TABLE tablename AUTO_INCREMENT = 1

2
ответ дан 24.11.2019, 12:18