mysql - haciendo un mecanismo similar a las secuencias de Oracle

MySQL proporciona un mecanismo automático para incrementar las ID de registro. Esto está bien para muchos propósitos, pero necesito poder usar secuencias como lo ofrece ORACLE. Obviamente, no tiene sentido crear una tabla para ese propósito.

La solución DEBE ser simple:

1) Crear una tabla para alojar todas las secuencias necesarias,

2) Cree una función que aumente el valor de una secuencia específica y devuelva el nuevo valor,

3) Cree una función que devuelva el valor actual de una secuencia.

En teoría, parece simple ... PERO ...

Al aumentar el valor de una secuencia (casi lo mismo quenextval en Oracle), debe evitar que otras sesiones realicen esta operación (o incluso recuperar el valor actual) hasta que se complete la actualización.

Dos opciones teóricas:

a - Use una instrucción UPDATE que devolvería el nuevo valor en una sola toma, o

b - Bloquee la mesa entre UPDATE y SELECT.

Desafortunadamente, parece que MySQL no permite bloquear tablas dentro de funciones / procedimientos, y al intentar hacer todo en una sola declaración (como ACTUALIZAR ... VOLVER ...) debe usar variables de tipo @ que sobreviven La finalización de la función / procedimiento.

¿Alguien tiene una idea / solución de trabajo para esto?

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta