Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Автоинкремент с учетом раннее удаленных индексов. Возможно ли? / 18 сообщений из 18, страница 1 из 1
25.08.2014, 15:32
    #38728196
YK13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
Всем доброго времени суток
Проблема у меня такая
Есть некая таблица в которой есть столбец индекс (тип INTEGER, не является PRIMARY KEY) как сделать, чтобы при добавлении новой записи в таблицу значение в этот столбец добавлялось автоинкрементом, НО!!! с учетом раннее удаленных индексов. Тоесть например имеются 1,2,3,5 новый индекс должен быть не 6, а 4. Можно ли это сделать в одном запросе или в одной транзакции, чтобы исключить добавление записи с таким же индексом другим пользователем

зараннее благодарен за совет
с уважением
YK13

PS
для работы исползуется интерфейс c++
...
Рейтинг: 0 / 0
25.08.2014, 17:30
    #38728357
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
Конечно возможно. Делаешь функцию которая в цикле перебирает все номера и находит пустой. Подключаешь ее в движок и все проблемы решены.

Вот только нафига это нужно?
...
Рейтинг: 0 / 0
26.08.2014, 15:34
    #38729194
YK13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
Попробовал вчера вечером. Да это действительно то что требовалось
Спасибо.

PS Для тех кто, как и я, раньше с этим не стакивался вот здесь , кстати, хорошо написано как работать с функциями
...
Рейтинг: 0 / 0
26.08.2014, 16:40
    #38729293
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
YK13,

А какая динамика роста кол-ва записей в этой таблице?
тестировали скорость этого решения на большом объеме?
...
Рейтинг: 0 / 0
26.08.2014, 19:29
    #38729436
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
YK13Всем доброго времени суток
Проблема у меня такая
Есть некая таблица в которой есть столбец индекс (тип INTEGER, не является PRIMARY KEY) как сделать, чтобы при добавлении новой записи в таблицу значение в этот столбец добавлялось автоинкрементом, НО!!! с учетом раннее удаленных индексов. Тоесть например имеются 1,2,3,5 новый индекс должен быть не 6, а 4. Можно ли это сделать в одном запросе или в одной транзакции, чтобы исключить добавление записи с таким же индексом другим пользователем

зараннее благодарен за совет
с уважением
YK13

PS
для работы исползуется интерфейс c++

глупая идея, часто осеняющая не умеющих думать
...
Рейтинг: 0 / 0
27.08.2014, 09:49
    #38729761
YK13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
White OwlВот только нафига это нужно?
пожелание заказчика, вызванное, некоторыми причинами

PPAА какая динамика роста кол-ва записей в этой таблице?
тестировали скорость этого решения на большом объеме?

MaratIskглупая идея, часто осеняющая не умеющих думать

надеюсь, что ты понял:)
...
Рейтинг: 0 / 0
27.08.2014, 09:55
    #38729767
YK13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
PPAА какая динамика роста кол-ва записей в этой таблице?
тестировали скорость этого решения на большом объеме?
прошу прощения, ссылка в предыдущем сообщении касается только MaratIsk:)
Нет на бльших объемах не тестировал. У заказчика объемы не большие
...
Рейтинг: 0 / 0
27.08.2014, 12:33
    #38730069
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
YK13PPAА какая динамика роста кол-ва записей в этой таблице?
тестировали скорость этого решения на большом объеме?
прошу прощения, ссылка в предыдущем сообщении касается только MaratIsk:)
Нет на бльших объемах не тестировал. У заказчика объемы не большие

я-то хоть по существу нагрубил :)

а теперь подумай - генератор выдает значения вне контекста всех транзакций. именно это гарантирует отсутствие конфликтов. ты же собираешься присваивать найденные дырявые значения в контексте пользовательского соединения. конфликт при этом неизбежен:
пользователь А обнаружил дыру, присвоил значение полю, но еще не зафиксировал. что увидит пользователь Б при подобной же операции?
...
Рейтинг: 0 / 0
27.08.2014, 12:35
    #38730075
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
YK13,

кстати, авторглупая идея - это тактичная подсказка переосмыслить логику :)
...
Рейтинг: 0 / 0
27.08.2014, 13:28
    #38730187
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
MaratIskчто увидит пользователь Б при подобной же операции?мы ж в ветке SQLite находимся => нету второго юзера))
...
Рейтинг: 0 / 0
27.08.2014, 17:43
    #38730790
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
fd00chMaratIskчто увидит пользователь Б при подобной же операции?мы ж в ветке SQLite находимся => нету второго юзера))

как???
а у меня сразу много может работать
правда через сервер
...
Рейтинг: 0 / 0
27.08.2014, 17:54
    #38730811
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
White OwlКонечно возможно. Делаешь функцию которая в цикле перебирает все номера и находит пустой. Подключаешь ее в движок и все проблемы решены.

Вот только нафига это нужно?

справедливости ради - бывают случаи, когда нужно
например, в системах документооборота, учете документов строгой отчетности

там решается так называемым резервированием номера (или пула номеров)
создается специальная таблица хранящая номера удаленных или отмененных документов для последующего использования значения
...
Рейтинг: 0 / 0
27.08.2014, 17:57
    #38730815
fd00ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
MaratIskправда через серверя так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :)
...
Рейтинг: 0 / 0
27.08.2014, 18:02
    #38730823
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
fd00chMaratIskправда через серверя так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :)

не в теме топика, но поясню - сервер используется как централизованное хранилище определений отчетов, клиентских настроек, да кучи всего, что может пригодиться клиенту
работает быстро и не требует изменений в целевой бд
...
Рейтинг: 0 / 0
28.08.2014, 00:43
    #38731038
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
MaratIskfd00chпропущено...
я так и думал - через то самое место. зачем в этой системе SQLite используется вообще? :)

не в теме топика, но поясню - сервер используется как централизованное хранилище определений отчетов, клиентских настроек, да кучи всего, что может пригодиться клиенту
работает быстро и не требует изменений в целевой бдТогда зачем тебе SQLite? Если нужно централизованное хранилище, надо брать обычную СУБД. Использовать встраиваемую в качестве сервера - идиотизм.
...
Рейтинг: 0 / 0
28.08.2014, 06:43
    #38731097
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
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 еще используется и в качестве кэша для ускорения
...
Рейтинг: 0 / 0
28.08.2014, 11:11
    #38731311
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
YK13,

стыдно стало что ли? не комплексуй - все мы люди, которым свойственно заблуждаться :)
...
Рейтинг: 0 / 0
28.08.2014, 14:18
    #38731634
metos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоинкремент с учетом раннее удаленных индексов. Возможно ли?
MaratIskглупая идея, часто осеняющая не умеющих думать
Соглашусь с данным высказыванием.

Не нужно реализовывать все хотелки "бизнеса" в лоб.

MaratIskтам решается так называемым резервированием номера (или пула номеров)
создается специальная таблица хранящая номера удаленных или отмененных документов для последующего использования значения
Вот отличное решение. А "бизнес" в тонкости реализации не стоит посвящать (у него мозг может опухнуть).
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Автоинкремент с учетом раннее удаленных индексов. Возможно ли? / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]