|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
Всем доброго времени суток Проблема у меня такая Есть некая таблица в которой есть столбец индекс (тип INTEGER, не является PRIMARY KEY) как сделать, чтобы при добавлении новой записи в таблицу значение в этот столбец добавлялось автоинкрементом, НО!!! с учетом раннее удаленных индексов. Тоесть например имеются 1,2,3,5 новый индекс должен быть не 6, а 4. Можно ли это сделать в одном запросе или в одной транзакции, чтобы исключить добавление записи с таким же индексом другим пользователем зараннее благодарен за совет с уважением YK13 PS для работы исползуется интерфейс c++ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 15:32 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
Конечно возможно. Делаешь функцию которая в цикле перебирает все номера и находит пустой. Подключаешь ее в движок и все проблемы решены. Вот только нафига это нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 17:30 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
Попробовал вчера вечером. Да это действительно то что требовалось Спасибо. PS Для тех кто, как и я, раньше с этим не стакивался вот здесь , кстати, хорошо написано как работать с функциями ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2014, 15:34 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
YK13, А какая динамика роста кол-ва записей в этой таблице? тестировали скорость этого решения на большом объеме? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2014, 16:40 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
YK13Всем доброго времени суток Проблема у меня такая Есть некая таблица в которой есть столбец индекс (тип INTEGER, не является PRIMARY KEY) как сделать, чтобы при добавлении новой записи в таблицу значение в этот столбец добавлялось автоинкрементом, НО!!! с учетом раннее удаленных индексов. Тоесть например имеются 1,2,3,5 новый индекс должен быть не 6, а 4. Можно ли это сделать в одном запросе или в одной транзакции, чтобы исключить добавление записи с таким же индексом другим пользователем зараннее благодарен за совет с уважением YK13 PS для работы исползуется интерфейс c++ глупая идея, часто осеняющая не умеющих думать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2014, 19:29 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
White OwlВот только нафига это нужно? пожелание заказчика, вызванное, некоторыми причинами PPAА какая динамика роста кол-ва записей в этой таблице? тестировали скорость этого решения на большом объеме? MaratIskглупая идея, часто осеняющая не умеющих думать надеюсь, что ты понял:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 09:49 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
PPAА какая динамика роста кол-ва записей в этой таблице? тестировали скорость этого решения на большом объеме? прошу прощения, ссылка в предыдущем сообщении касается только MaratIsk:) Нет на бльших объемах не тестировал. У заказчика объемы не большие ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 09:55 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
YK13PPAА какая динамика роста кол-ва записей в этой таблице? тестировали скорость этого решения на большом объеме? прошу прощения, ссылка в предыдущем сообщении касается только MaratIsk:) Нет на бльших объемах не тестировал. У заказчика объемы не большие я-то хоть по существу нагрубил :) а теперь подумай - генератор выдает значения вне контекста всех транзакций. именно это гарантирует отсутствие конфликтов. ты же собираешься присваивать найденные дырявые значения в контексте пользовательского соединения. конфликт при этом неизбежен: пользователь А обнаружил дыру, присвоил значение полю, но еще не зафиксировал. что увидит пользователь Б при подобной же операции? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 12:33 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
YK13, кстати, авторглупая идея - это тактичная подсказка переосмыслить логику :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 12:35 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
MaratIskчто увидит пользователь Б при подобной же операции?мы ж в ветке SQLite находимся => нету второго юзера)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 13:28 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
fd00chMaratIskчто увидит пользователь Б при подобной же операции?мы ж в ветке SQLite находимся => нету второго юзера)) как??? а у меня сразу много может работать правда через сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 17:43 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
White OwlКонечно возможно. Делаешь функцию которая в цикле перебирает все номера и находит пустой. Подключаешь ее в движок и все проблемы решены. Вот только нафига это нужно? справедливости ради - бывают случаи, когда нужно например, в системах документооборота, учете документов строгой отчетности там решается так называемым резервированием номера (или пула номеров) создается специальная таблица хранящая номера удаленных или отмененных документов для последующего использования значения ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 17:54 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
MaratIskправда через серверя так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 17:57 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
fd00chMaratIskправда через серверя так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :) не в теме топика, но поясню - сервер используется как централизованное хранилище определений отчетов, клиентских настроек, да кучи всего, что может пригодиться клиенту работает быстро и не требует изменений в целевой бд ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 18:02 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
MaratIskfd00chпропущено... я так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :) не в теме топика, но поясню - сервер используется как централизованное хранилище определений отчетов, клиентских настроек, да кучи всего, что может пригодиться клиенту работает быстро и не требует изменений в целевой бдТогда зачем тебе SQLite? Если нужно централизованное хранилище, надо брать обычную СУБД. Использовать встраиваемую в качестве сервера - идиотизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 00:43 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
White OwlMaratIskпропущено... не в теме топика, но поясню - сервер используется как централизованное хранилище определений отчетов, клиентских настроек, да кучи всего, что может пригодиться клиенту работает быстро и не требует изменений в целевой бдТогда зачем тебе SQLite? Если нужно централизованное хранилище, надо брать обычную СУБД. Использовать встраиваемую в качестве сервера - идиотизм. скор, ты, батенька, на выводы :) это tcp/ip сервер, поддерживающий oracle, firebird, ado, sqlite, absolute, dbf (только чтение) одновременно и многопоточно, при чем этих подключений может быть произвольное количество разрабатывая его руководствовался следующими соображениями 1. простота эксплуатации и настройки. я же не могу знать в каком окружении и какие субд будут использоваться. в минималистском варианте может быть один единственный exe cо встроенным движком sqlite. для поддержки firebird может использовать embedded и тогда сам может выступать в качестве сервера. для поддержки oracle тоже не требуется ничего кроме двух файлов из комплекта instant client, при этом нет необходимости в каких-то дополнительных настройках - типа tns, path, home 2. для небольших задач этого вполне достаточно. 18-20 тыс абонентов домофонной компании для него капля 3. а поскольку генератор отчетов у меня работает через него, то оказалось проще хранить на нем и определения отчетов, блобы с шаблонами, обновления для клиентских приложений и всякую всячину типа хелпов и мануалов. конечно для этого можно использовать другую субд. sqlite движок в режиме memory еще используется и в качестве кэша для ускорения ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 06:43 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
YK13, стыдно стало что ли? не комплексуй - все мы люди, которым свойственно заблуждаться :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 11:11 |
|
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
|
|||
---|---|---|---|
#18+
MaratIskглупая идея, часто осеняющая не умеющих думать Соглашусь с данным высказыванием. Не нужно реализовывать все хотелки "бизнеса" в лоб. MaratIskтам решается так называемым резервированием номера (или пула номеров) создается специальная таблица хранящая номера удаленных или отмененных документов для последующего использования значения Вот отличное решение. А "бизнес" в тонкости реализации не стоит посвящать (у него мозг может опухнуть). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 14:18 |
|
|
start [/forum/topic.php?fid=54&msg=38731311&tid=2008761]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 436ms |
0 / 0 |