Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые знатоки. Позвольте задать вопрос: MS SQL Managment studio 2012. Создаю таблицу, в таблице есть инкрементное поле ID. Начинаю работу с таблицей, тестирую: добавляю, удаляю данные. И вот, что обнаружил, ID сначала идут 1,2,3,4,5...50,51,1052,1053,1054... Откуда берется такой шаг? Я работаю на локальной машине, больше никто, кроме меня не имеет доступа к этой базе, и добавлял в таблицу не более сотни записей. Если кто сталкивался с этим, подскажите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 11:04 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Автоинкремент гарантирует только то, что очередное сгенерированное значение будет больше предыдущего (если не корректировать настройки, конечно). А вот непрерывности - не гарантирует. Нужна непрерывность - используйте дополнительное поле-счётчик с "ручным" пересчётом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 11:20 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Akina, благодарю вас за ответ. А можете не большой пример привести? Никогда не пользовался счетчиком с "ручным" пересчетом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 11:24 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
CREATE SEQUENCE https://docs.microsoft.com/en-us/sql/t-sql/statements/create-sequence-transact-sql Доступно с версии 2012. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 11:52 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Благодарю всех, кто ответил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 11:58 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Akina, seaquence тоже не гарантирует равномерное возрастание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:04 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
TaPaKseaquence тоже не гарантирует равномерное возрастаниеДа... но если отключить кэширование, то разве что в случае отката транзакции, в которой получаем значение (ну или вообще втупую получили и не стали использовать)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:22 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
AkinaTaPaKseaquence тоже не гарантирует равномерное возрастаниеДа... но если отключить кэширование, то разве что в случае отката транзакции, в которой получаем значение (ну или вообще втупую получили и не стали использовать)... будем называть "ну почти-почти гаранитирует" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:29 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
TaPaK , я вообще не могу представить, как ГАРАНТИРОВАТЬ. Всегда, при любой методике, есть последовательность событий, которая приведёт к разрыву последовательности и пропуску значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:01 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Akina TaPaK , я вообще не могу представить, как ГАРАНТИРОВАТЬ. Всегда, при любой методике, есть последовательность событий, которая приведёт к разрыву последовательности и пропуску значений.Гарантирует пересчет внутри модифицирующей транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:02 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичГарантирует пересчет внутри модифицирующей транзакции.Если она, такая модифицирующая транзакция, возможна. А она не всегда возможна. Например, вставляемые данные, включая сгенерированный идентификатор, копируются в таблицу лога, которая UPDATE/DELETE DENY - что тут модифицируешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:08 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
AkinaГавриленко Сергей АлексеевичГарантирует пересчет внутри модифицирующей транзакции.Если она, такая модифицирующая транзакция, возможна. А она не всегда возможна. Например, вставляемые данные, включая сгенерированный идентификатор, копируются в таблицу лога, которая UPDATE/DELETE DENY - что тут модифицируешь?Модифицировтаь данные до вставки с предварительной блокировкой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:11 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
может автору реально и не нужен этот непререрывный счётчик, может у него всего лишь отчёт какой-нибудь и достаточно сделать правильный запрос с нумерацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:15 |
|
||
|
Не верно увеличиваются ID
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич , ааа, в этом смысле... ну при монопольном доступе - оно конечно да. SELECT 1+MAX(id)... если вставлять по одной записи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39642616&tid=1689754]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 408ms |

| 0 / 0 |
