mysql - создание механизма, аналогичного последовательностям Oracle

MySQL предоставляет автоматический механизм увеличения идентификаторов записей. Это нормально для многих целей, но мне нужно иметь возможность использовать последовательности, предлагаемые ORACLE. Очевидно, что нет никакого смысла в создании таблицы для этой цели.

Решение ДОЛЖНО быть простым:

1) Создать таблицу для размещения всех необходимых последовательностей,

2) Создать функцию, которая увеличивает значение определенной последовательности и возвращает новое значение,

3) Создайте функцию, которая возвращает текущее значение последовательности.

В теории это выглядит просто ... НО ...

При увеличении значения последовательности (почти так же, какnextval в Oracle) необходимо запретить другим сеансам выполнять эту операцию (или даже извлекать текущее значение), пока обновление не будет завершено.

Два теоретических варианта:

a - Используйте оператор UPDATE, который бы возвращал новое значение за один раз, или

б - Блокировка таблицы между ОБНОВЛЕНИЕМ и ВЫБОР.

К сожалению, может показаться, что MySQL не позволяет блокировать таблицы в функциях / процедурах, и при попытке сделать все это одним оператором (например, UPDATE ... RETURNING ...) вы должны использовать переменные типа @, которые выживают. завершение функции / процедуры.

У кого-нибудь есть идея / рабочее решение для этого?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос