![]() |
|
Модераторы: skyboy |
![]()
|
|
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
----- BD MySQL -----
Вопрос: как сделать так чтоб при удалении строки из таблицы, номер йд следующей за ней строкой принимал значение удаленной и те за ней так же меняли например:
При обьяве (id int not null auto_increment,text text,primary key(id)) он еще и при удалении допустим значений 20 ,добавленную строку помечает id = 21 а мне нужно чтоб смещалось ! Плз ПОМОГИТЕ, ЧТО ДЕЛАТЬ -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
А зачем? На то аутокримент и существует, чтобы не повторялись ключевые значения.
-------------------- |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
А мне нужно чтобы при удалении он смещался ! -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| SmaLL |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: нет Всего: 2 |
Автоинкрементное поле не сдвинется! Хоть тресни! -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
||||
|
|||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Если надо иметь такой ID - то стОит задуматься о перепроектировании.
А если надо просто ну никак - бшлокируешь таблицу и сразу после удаления (обозначим удаленный id как id_deleted) update TABLE set id=id-1 where id>id_deleted Хотя я настоятельно рекомендую посмотреть вариант, чтобы этого не делать. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Ладно, спасибо за информацию.
И у меня тут созрел еще один вопрос: А как сделать чтоб ID генерился из четырех-пяти значных чисел ? -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
А что, целое 32 бита таких величин не поддерживает ? |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
AntonSaburov может ты меня не так понял, мне надо что бы id не с 1 генерилось а уникальные вроде там 4679 следующее число 7583 ну и тд.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Не без этого А как ты генеришь сейчас ? |
|||
|
||||
| Oleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.9.2002 Репутация: нет Всего: нет |
Я вроде понял, у меня тоже такое было, правда не на MySQL, но я бы сделал id не аутоинкремент, а просто длинным целым , и процедуру, котороая в цикле пробегала бы всю таблицу (или нижний кусок после удаленной записи )и меняла бы id
условно говоря: ... for i:= 1 to table.recordcount do begin table.recno:= i; id:= i end; ... что-то вроде этого. --------------------
...Знающий не доказывает. Доказывающий не знает... |
|||
|
||||
| U-gene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Хоть тресни, не могу ВООБЩЕ понять, зачем такое поле надо. Ссылаться на него нельзя (в следущий раз можно попасть на другую запись), что бы число записей в таблице посмотеть - так это через COUNT можно сделать. Никакой полезной информации оно ИМХО нести не может, поскольку меняется. Например, пользователь сегодня видит одну 20-ю запись, а завтра 20-ой окажеться другая запись. Ежели не секрет, поделитесь, зачем оно?
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: нет Всего: 73 |
Да была одна мысль ... но я думаю действительно геморойничать не к чему ...
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Вот это правильно |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |