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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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