sql >> Base de Datos >  >> RDS >> Mysql

cambie auto_increment dentro de la misma tabla usando la subconsulta mysql

El analizador no admite una subconsulta en el lugar en el que está tratando de usarla.

Aquí está el extracto de la fuente de MySQL, de sql/sql_yacc.yy:

create_table_option:
    . . .
    | AUTO_INC opt_equal ulonglong_num

Lo que deberías leer allí es que el AUTO_INCREMENT La opción de tabla acepta solo un único número literal, no una expresión, una subconsulta, una variable o cualquier otra cosa. Entonces, simplemente no puede configurar AUTO_INCREMENT en la misma declaración en la que hace SELECT MAX(id)+1 .

Pero no tienes que hacerlo.

MySQL nunca asignará una identificación de incremento automático menor que el valor más grande actualmente en la tabla. Entonces, si tiene una tabla con el valor de identificación 102, el próximo valor asignado será al menos 103.

Incluso puede intentar configurar AUTO_INCREMENT=50 explícitamente, pero eso se incrementará automáticamente a MAX(id)+1.