Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
ВнизПоследовательная нумерация Найти похожие ветки
← →
sdram (2002-10-09 15:37) [0]Подскажите Алгоритм (по возможности быстрый) как создавать значения индексных полей что бы при удалени - дополнении было-бы поменьше пропущенных номеров.
← →
Johnmen (2002-10-09 15:49) [1]А где же правила хорошего тона ?
← →
sdram (2002-10-09 15:51) [2]
> А где же правила хорошего тона
А по правилам счетчиком нужно полизоваться?
← →
Johnmen (2002-10-09 15:58) [3]Я имел в виду, какая же СУБД ?
← →
sdram (2002-10-09 16:01) [4]На текущий момент Acces, но вообще интересует сама идея.
← →
sdram (2002-10-09 16:06) [5]К примеру я пробовал так:
while fGen.dsIdToUid.Locate("uid", inttostr(j), []) do inc(j);
но очень медленно выходит.
← →
Johnmen (2002-10-09 16:08) [6]Идеи сильно зависят не только от типа СУБД, но и от многопользовательское использование или нет...:)
← →
sdram (2002-10-09 16:11) [7]Монопольный доступ.
← →
Anatoly Podgoretsky (2002-10-09 16:22) [8]Тогда раз уж такое извращение, то лучше dec и не locate a Nexr/Prev
Но изврат сильный, что то не в порядке в консерватории
← →
sdram (2002-10-09 16:25) [9]А чем Nexr/Prev лучше?
← →
Best Before 2024 (2002-10-09 16:42) [10]Можно попробовать так:
SELECT MIN(KeyID)+1 AS NextKeyID FROM XTable A
WHERE (NOT EXISTS (SELECT * FROM XTable B WHERE A.ID + 1 = B.ID))
← →
Praco (2002-10-09 17:05) [11]Возможности аксесса закончатся гораздо раньше, чем будет исчерпан 4-х байтовый целый ключ.
Так что об экономии можно не думать, ИМХО.
Читал про такой простой метод:
1.генерится случайное целое(равномерный закон, максимальный диапазон)
2.полученный ключ проверяется на существование
3.если не существует, то вставка, иначе => п.1
← →
sdram (2002-10-09 17:12) [12]
> Praco ©
Похоже это самый быстрый из всех предложенных.
Спасибо всем.
← →
sdram (2002-10-09 17:15) [13]
> Johnmen ©
Нудный ты какой-то, столько спрашивал и ничего не предложил.
← →
Johnmen (2002-10-09 17:22) [14]Если тебе мало, то предлагаю :
SELECT MAX(id)+1 FROM Table (самое быстрое...)
← →
Praco (2002-10-09 17:32) [15]sdram ©
Еще способ - использование GUID. Ключ длиннее, зато гемороя с генерацией меньше.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c