Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

MySQL: обновить primary key

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> MySQL: обновить primary key
Имя
Сообщение << Старые топики   Новые топики >>
MySQL: обновить primary key - 2008-07-19 10:32:17.600000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
В процессе манипуляции таблицой в mysql появилась такая путаница:

user_id      user_name
1              ….
2              ….
4              ….
5              ….
6              ….
9              ….

мне надо, чтобы user_id шли по порядку, вот так:

user_id      user_name
1              ….
2              ….
3              ….
4              ….
5              ….
6              ….

user_id у меня primary key auto_increment.

Имя таблицы: users.

Прошу написать запрос, который обновлял, а то в интернете не могу найти пример.
Post #: 1
RE: MySQL: обновить primary key - 2008-07-25 08:58:55.153333   
Valiant

Сообщений: 55
Оценки: 0
Присоединился: 2008-07-14 15:01:54.353333
выполнить подобное в MySQL может только движок InnoDB
Дело в том что после того как вы удаляете какую нибудь запись,
запись не удаляется из базы а всего лишь ставится пометка типа "ЗАПИСЬ УДАЛЕНА".
На эту тему я бы в вашем случае не парился. Если вы всё же хотите заняться мозговым ононизмом,
то вам следует пересоздать БД но уже использую вышеуказанный движок.
Post #: 2
RE: MySQL: обновить primary key - 2008-07-25 12:04:40.026666   
dos 999

Сообщений: 331
Оценки: 0
Присоединился: 2007-12-17 10:49:07.556666
t3rmin41 блин уже несколько раз подобные вопросы задавали… используй под порядковый номер отдельное поле… примари кей не преднозначен для этого.
Post #: 3
RE: MySQL: обновить primary key - 2008-07-25 12:18:58.713333   
_hel_

Сообщений: 103
Оценки: 0
Присоединился: 2008-07-09 16:00:40.600000
А зачем?

Всё итак идёт по порядку. Естественно если ты удалишь запись - то промежуточных строчек не станет. Но такая ситуация как у тебя даже по логике правильна. Если ты вдруг захочешь насильно упорядочить их "вручную", то можешь напороться на такую ситуацию, что тебе придется восстанавливать базу из бэкапа. Я более чем уверен, что айдишники юзеров используются и другими таблицами, которые тебе придется смещать чтобы упорядочить. То есть тебе нужно будет разработать автоматизированное решение для упорядочивания сразу во всех таблицах, что очень сложно, тем более его придется запускать каждую неделю/месяц…. Есть еще одна возможность, чуток переписать скрипт регистрацим, добавить проверку на "потерянные айдишники", если найдется такой (в твоем случае например 3), то скрипт запишет юзера с именно с таким ид, проблем в последствии не будет, а если там нету потерянных айди, то тупо автоинкрементим. Хочу заметить, что такой способ будет чудовищно ресурсоемким, поэтому забей на это дело в корне. Бесполезное метание, никому не нужное.
Post #: 4
RE: MySQL: обновить primary key - 2008-07-25 19:02:34.030000   
t3rmin41

Сообщений: 245
Оценки: 0
Присоединился: 2007-11-12 14:06:01.393333
Ок, ясно.

quote:

запись не удаляется из базы а всего лишь ставится пометка типа "ЗАПИСЬ УДАЛЕНА".


Так получается, растёт размер базы данных, как в Access, хотя там полезная информация не содержится? А как тогда уменьшить размер БД и/или таблицы?


Post #: 5
Страниц:  [1]
Все форумы >> [Прочее] >> MySQL: обновить primary key







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.