powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / тразакционный автоинкремент вручную...
5 сообщений из 5, страница 1 из 1
тразакционный автоинкремент вручную...
    #38569527
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернулся к Мускулю и чего-то затупил...

Собственно вопрос в сабже. Движок innoDb.

Если я сделаю сначала start transaction считаю последнее значение а потом буду вставлять записи - в эту же табличку - это "оно"? :)

Мне надо чтобы никакая другая сессия не вмешалась в этот процесс. Записи вставляются "пачкой" и там не совсем "чистый автоинкремент" (с дырами).

Или надо делать через lock tables?
---
:) Это надо делать так! (Переделкин)
...
Рейтинг: 0 / 0
тразакционный автоинкремент вручную...
    #38569528
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

П.С. пишу на локали и толком проверить не могу... боюсь что при выкладке появятся "накладки", которые потом будет очень трудно выловить. Подзабыл, как оно тут...
...
Рейтинг: 0 / 0
тразакционный автоинкремент вручную...
    #38569557
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

А что "оно"? Автоинкремент везде нетранзакционный.
Вставки — наоборот.
...
Рейтинг: 0 / 0
тразакционный автоинкремент вручную...
    #38569560
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Я наверное невнятно написал.

Дано:

Есть табличка, в которой надо сделать "почти" автоинкрементное поле. То есть, чтобы при вставке его значение росло "от последней записи". Но, вставка в табличку делается пачками через INSERT VALUE (?),(?)...(?). И, соответственно, это поле прописывается привставке какими то значениями. Мне нужно, чтобы эти значения сохраняли свою последовательность, но были больше последнего записанного в таблицу.

Решение:

Читаю последнее значение и к бинтуемым параметрам к запросу вставки припюсовываю это значение. Последовательность "сохранена" и "сдвинута" к последнему.

Проблема:

Между чтением и запросом на вставку может пролететь Эн+1 запрос из других сессий. Число таких одновременно работающих сессий - около 100.

Мне нужно гарантировать что между этим чтением последнего номера и запросом на вставку не пройдет НИЧЕГО. Совсем ничего к этой таблице: ни чтения ни записи.
...
Рейтинг: 0 / 0
тразакционный автоинкремент вручную...
    #38569718
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

Спасибо всем за активную помощь, тему можно закрывать. Перечитал доку и остановился на явном lock tables.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / тразакционный автоинкремент вручную...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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