-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в community_coding

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.12.2004
Записей:
Комментариев:
Написано: 536


вопрос(mysql)

Пятница, 22 Апреля 2005 г. 09:18 + в цитатник
QaSt все записи автора есть допустим у меня в бд записи вида id|name|text|
пусть это будут записи о юзерах. id каждый раз формируеца с помощью select MAX(id) + 1
так вот удалил я одного юзера, скажем id=10
остались юзеры с id>10, id<10 но вот id=10 боля нету. Вопрос: как реализовать шоб при следующей регистрации юзер получил id=10? т.е. число отсутствуещее в цепи чисел %)

В колонках играет - soad
QaSt

апдейт: кодим на php
Рубрики:  вопросы

Teonanacatl   обратиться по имени Пятница, 22 Апреля 2005 г. 09:20 (ссылка)
А для чего это собственно нужно?
Я имею в виду непрерывную последовательность ID?
Ответить С цитатой В цитатник
Teonanacatl   обратиться по имени Пятница, 22 Апреля 2005 г. 09:31 (ссылка)
Пока на ум приходит одно простое рещение...
Заводица дополнительная таблица, где храняца удаленные ID...
При следующей вставке юзера просто береца MIN(ID) из этой таблицы, с последующим удалением этого ID из временной таблицы...
Ответить С цитатой В цитатник
Wethril_Haldar   обратиться по имени Пятница, 22 Апреля 2005 г. 09:35 (ссылка)
) задачка забавная
на практике как правило авто_инкремент)))
Ответить С цитатой В цитатник
Wincy   обратиться по имени Пятница, 22 Апреля 2005 г. 09:50 (ссылка)
Автор!!! Категорически не советую так делать! ЗАБУДЬ ПРО ЭТО.
Писал я движок для одного проекта, довольно крупного, решил сделать такую же феньку, т.к. раздрожало меня то, что ИД не по порядку идёт... БЛИН! Потом при удалении/добавлении/редактировании новости/поста просто всё путалось, кривилось и не хотело работать.
Главное, не только у меня такое было. На самом деле читал даже мануал, где так категорические не советуют делать.
А зачем тебе это?
Ответить С цитатой В цитатник
holy_diver   обратиться по имени Пятница, 22 Апреля 2005 г. 10:39 (ссылка)
Блин, а оно надо? С временной таблиецей делается легко, но вот потом целостность данных обеспечивать... Храни тебя господь наш Рандом от такого.
Ответить С цитатой В цитатник
непобедимый   обратиться по имени Пятница, 22 Апреля 2005 г. 11:09 (ссылка)
QaSt, можно учудить искомое следующим образом - выполняешь такой запрос:
code:

select
t1.id, -- нафиг не нужно, но без этого ругается на having
(max(t2.id) + 1) as new_id
from $fromtable as t1
inner join $fromtable as t2 on t1.id>t2.id
group by t1.id
having (t1.id - max(t2.id)) > 1
order by new_id
limit 1


Если возвращает пустое значение new_id, то в запросе на создание новой записи просто не указывай пару ID=<новое значение> и AUTO_INCREMENT самолично закинет туда MAX(id) + 1
Но как по мне - проще юзать только AUTO_INCREMENT и не париться насчет дыр из-за удаленных ID-ов :)

Идея смодернезирована отсюда
Ответить С цитатой В цитатник
P_a_s_h_a   обратиться по имени Пятница, 22 Апреля 2005 г. 12:15 (ссылка)
Ну, в стандартном SQL эта задача решается так:
(если в mysql не поддердживаются ANSI-фичи, sorry, бо собственно mySql не знаю)
code:

select min(id)+1 from fromtable o1 where not exists
(select 1 from fromtable o2 where o2.id = o1.id +1)


Interbase,Oracle,MsSql-будет работать.
Пустое значение возвратит только если в таблице нет записей вообще, тогда в первую запись можно будет втулить единицу или ноль, или с чего там ID хотите начинать.
Ответить С цитатой В цитатник
непобедимый   обратиться по имени Пятница, 22 Апреля 2005 г. 13:06 (ссылка)
P_a_s_h_a, так будет работать в мускуле начиная с версии 4.1 - только там появились подзапросы.
Ответить С цитатой В цитатник
VictorT   обратиться по имени Пятница, 22 Апреля 2005 г. 13:17 (ссылка)
Имхо, такая "идея" (по поводу списка значений без дырок), возникает у каждого поначалу (и у меня возникала). Только смысла в ней нет.

А по поводу:
id каждый раз формируеца с помощью select MAX(id) + 1

Лучше просто сделать поле автоинкриментным, а не делать это ручками.
Ответить С цитатой В цитатник
QaSt   обратиться по имени Пятница, 22 Апреля 2005 г. 15:13 (ссылка)
каждый вариант интересен па своему
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку