Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 May 17

G

Gopneg in SqlCom.ru - Стиль жизни SQL
секвинс это просто счетчик, если у тебя транзакция откатилась, никаких записей не будет
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
а если не откатилась, то в чем вообще проблема?
источник

АН

Авроамэриканец Начрэ... in SqlCom.ru - Стиль жизни SQL
Значит если я буду делать неправильные запросы внутри транзакции и откатывать её, то счётчик не будет увеличиваться?
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
будет, но какая в этом проблема? это просто генератор суррогатных ключей
источник

АН

Авроамэриканец Начрэ... in SqlCom.ru - Стиль жизни SQL
Я уже описал проблему. Сразу отпадает возможность проверки "если не существует, значит дальше можно не искать"
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
их значения ни на что не влияют, а если ты вдруг случайно на их значения (вернее на их последовательный рост)  что-то завязал, то это лишь твоя ошибка которую нужно поправить, а не лечить то что не болеет
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
а если запись например удалят? будет ровно то же самое
источник

АН

Авроамэриканец Начрэ... in SqlCom.ru - Стиль жизни SQL
Иногда существует договорённость о неудалении записей
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Авроамэриканец Начрэл
Иногда существует договорённость о неудалении записей
хорошо, раз ты пытаешься дальше упираться рогом
следующий кейс
одна транзакция откатилась, а вторая нет, при этом у второй номер уже выше
что делать со второй записью? еще раз потом такой же идшник не вставишь
источник

АН

Авроамэриканец Начрэ... in SqlCom.ru - Стиль жизни SQL
Я не буду убеждать тебя в том, что мне что-то нужно. Бан
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
вот вечно адепты идентити дичь придумают какую-то
надо законодательно закрепить что если опыта с базами меньше 5 лет - идентити низя под страхом уголовного наказания
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Авроамэриканец Начрэл
Я не буду убеждать тебя в том, что мне что-то нужно. Бан
а меня и не надо убеждать, я тебе кейс привел конкретный, ты его не разрулишь
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
разрулить то можно при максимальном уровне изоляции и эксклюзивной блокировкой с нулевой параллельностью работы транзакций, непонятно только как наличие дырок в нумерации нарушает консистентность данных...
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
разрулить то можно при максимальном уровне изоляции и эксклюзивной блокировкой с нулевой параллельностью работы транзакций, непонятно только как наличие дырок в нумерации нарушает консистентность данных...
секвинс дергается до вставки, блокировка не поможет, если я конечно что-то не путаю
да и накладывать излишние блокирвки в версионнике, явно ничо хорошего не добавит %)
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Gopneg
секвинс дергается до вставки, блокировка не поможет, если я конечно что-то не путаю
да и накладывать излишние блокирвки в версионнике, явно ничо хорошего не добавит %)
ну я не про конкретный сервер и конкретный механизм нумерации, а вообще...
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
если от сиквенсов уйти то можно просто сделать таблицу с идшниками и оттуда брать
в духе дичи от свидетелей идентити %)
источник

I

ILYA in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
разрулить то можно при максимальном уровне изоляции и эксклюзивной блокировкой с нулевой параллельностью работы транзакций, непонятно только как наличие дырок в нумерации нарушает консистентность данных...
Даже так не получится... Три транзакции, вторая и третья стартовали пока выполнялась первая , вторая упала, вот тебе и пробел в нумерации. Завязывать логику на автоинкеремент с надеждой но то что он всегда последователен путь к боли и огорчению
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
ILYA
Даже так не получится... Три транзакции, вторая и третья стартовали пока выполнялась первая , вторая упала, вот тебе и пробел в нумерации. Завязывать логику на автоинкеремент с надеждой но то что он всегда последователен путь к боли и огорчению
так я и говорю что только с нулевой параллельностью, пока одна транзакция активна, другие должны тупо ждать завершения либо отката.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
так я и говорю что только с нулевой параллельностью, пока одна транзакция активна, другие должны тупо ждать завершения либо отката.
ждать до попытки инсерта? ввести таблицу блокировок? даже myisam посмеется над такой схемой %))
источник

I

ILYA in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
так я и говорю что только с нулевой параллельностью, пока одна транзакция активна, другие должны тупо ждать завершения либо отката.
Ну в ms для этого можно аплок тогда использовать наверное, но лучше конечно так не делать..
источник