Jump to content
  • 0

числовые ID без пропусков


Bolmazov
 Share

Question

Возник вопрос: есть таблица с ID значение которого для каждой записи генерируется с помощью auto_increment при её создании. Но если я в последствие удалю запись, то образуется дырка в последовательности числовых ID записей данной таблицы. Естественно можно это всё дело устранять в PHP... а нет ли этому более подходящего решения (в самом mySQL допустим)?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Да... я и сам сомневаюсь в этой необходимости. Во-первых меня это просто само по себе смущало. Во-вторых нужно было знать по текущей записи предыдущую и следующую. Но наверное вопрос: "Зачем это нужно? " красноречиво свидетельствует о том что данный способ решить эту проблему не верный.

Link to comment
Share on other sites

  • 0
Возник вопрос: есть таблица с ID значение которого для каждой записи генерируется с помощью auto_increment при её создании. Но если я в последствие удалю запись, то образуется дырка в последовательности числовых ID записей данной таблицы. Естественно можно это всё дело устранять в PHP... а нет ли этому более подходящего решения (в самом mySQL допустим)?

ну вы блин даёте :) Единственное, для чего нужен auto_increment - для однозначной идентификации строки в БД (даже после удаления строчки её место НЕ займет другая). Ну и сортировки таблицы в нужном направлении. Это, типа, основы баз данных...

homm

Это плохой способ. Работать будет, но заставит mysql просматривать все записи до и после исходной.

Лучше так:

SELECT MAX(id) FROM news WHERE id<6000
SELECT MIN(id) FROM news WHERE id>6000

Не забываем юзать EXPLAIN при составлении запросов :)

Link to comment
Share on other sites

  • 0

stalker_2000, при всём уважении, но я об этом и говорил. Вы дали хороший способ заставит mysql просматривать все записи до и после исходной, спасибо. На исходный вопрос ответ "ну вы блин даёте", экскурс для чего нужен auto_increment и понт, что это "типа, основы баз данных". Я не скрываю ,что слаб в SQL от того и попросил помощи...

Но все равно спасибо.

P.S. может посоветуете дальный русскоязычный ресурс по mySQL и phpMyAdmin?

Link to comment
Share on other sites

  • 0
stalker_2000, при всём уважении, но я об этом и говорил. Вы дали хороший способ заставит mysql просматривать все записи до и после исходной, спасибо. На исходный вопрос ответ "ну вы блин даёте", экскурс для чего нужен auto_increment и понт, что это "типа, основы баз данных". Я не скрываю ,что слаб в SQL от того и попросил помощи...

Но все равно спасибо.

не имел намерения никого обижать лекцией по auto_increment-у, просто это действительно основы, которые трудно пропустить, начав изучение баз данных.

P.S. может посоветуете дальный русскоязычный ресурс по mySQL и phpMyAdmin?

по mysql лучше купить хорошую книжку, а по второму - http://php-myadmin.ru/. Ну и google.com, само собой

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy