Jump to content
  • 0

Нумерация строк в MySQL


Евген
 Share

Question

Здраствуйте.

Проблема.

У меня таблица в которой есть поле id, оно заполняется auto_increment. После того, как я удаляю строку в таблице остаются пробелы. т.е. нумерация идет вот так:

схематично отображу таблицу:

id text

1 ыва

2 висм

3 ваыв

4 ываы

5 цукц

удалаем 4, получается что 4 строки нет и при добавление новой строки id уже заноститься под номером 6.

Надеюсь донес мысль.

Как с этим бороться?

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

2Евген, вам Dimitry Wolotko уже сказал - зачем с этим бороться? Это идентификационный ключ вашей записи, он не выполняет роль нумерации.

Представьте, таблицы:

names:

name_id name

1 вася

2 петя

addresses:

id name_id address

1 2 ул. Пупикина

Т.е. на Петю записан адрес "ул. Пупкина". Теперь удалим из names Васю.

Если делать как вы хотите, то запись Пети должна будет стать с ключом 1, т.е. помимо этого надо будет изменить и name_id в таблице addresses на 1, чтобы не нарушалась целостность базы. Оно вам надо?

Нумерацию строк, должен выводить скрипт, обрабатывающий строки запроса. База за это отвечать не должна.

Link to comment
Share on other sites

  • 0
2Евген, вам Dimitry Wolotko уже сказал - зачем с этим бороться? Это идентификационный ключ вашей записи, он не выполняет роль нумерации.

Представьте, таблицы:

names:

name_id name

1 вася

2 петя

addresses:

id name_id address

1 2 ул. Пупикина

Т.е. на Петю записан адрес "ул. Пупкина". Теперь удалим из names Васю.

Если делать как вы хотите, то запись Пети должна будет стать с ключом 1, т.е. помимо этого надо будет изменить и name_id в таблице addresses на 1, чтобы не нарушалась целостность базы. Оно вам надо?

Нумерацию строк, должен выводить скрипт, обрабатывающий строки запроса. База за это отвечать не должна.

все это понятно. Но база из одной таблицы и целостность ьазы меня не пугает. Нужна последовательная нумерация.

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0
1 - 2 - 3 - 4

Итого - кол-во - 4

1 - 2 - 4

Удалили id=3 - итого - кол-во - 3

1 - 2 - 4 - 4

Хорошего мало.

Или я тебя не понял?

вроде так, кстати и получается.. нужно по умному писать.. а лучше тему закрыть с пометкой - "не маемся дурью"

Link to comment
Share on other sites

  • 0
База с ссылками на изображения. И просмотр этой базы очень сильно зависит от е? нумерации. вот так просто.

Совершенно неочевидно, что просмотр базы зависит от нумерации строк в таблице. Если есть прямая связь между таблицами или файлом с номером, то переименование только попортит тебе всю работу.

Надеюсь понял, что не надо ничего делать? Иногда бездействие полезнее целой сотни работ.

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