У меня есть таблица с двумя столбцами. Одним из них является auto_increment скажем columnA, тогда как другим является не auto_increment скажем columnB. Я хочу выполнить два типа операций вставки в столбце B:
- Вставить постоянное число (для преднамеренного дублирования)
- Вставить максимум (столбец B) + 1 (это не должно вызывать дублирования)
Операция 1 проста, но в операции 2 может быть дублирование, поскольку операция не является полностью атомарной. Я планирую использовать следующий SQL:
вставить таблицу (столбец B), выбрать максимум (столбец B) +1 из таблицы
Если несколько пользователей одновременно нажмут вышеуказанный SQL, это приведет к дублированию. Я хочу знать, как сделать заявление полностью атомарным.
Еще одна вещь, если вы предлагаете блокировку таблицы, есть ли в любом случае задержка вставки вместо возврата ошибки из-за блокировки таблицы?