Parseren understøtter ikke en underforespørgsel på det sted, du forsøger at bruge den.
Her er uddraget fra MySQL-kilden, fra sql/sql_yacc.yy:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
Hvad du bør læse der er, at AUTO_INCREMENT
tabelindstillingen accepterer kun et enkelt bogstaveligt tal, ikke et udtryk eller en underforespørgsel eller en variabel eller noget andet. Så du kan simpelthen ikke indstille AUTO_INCREMENT i den samme sætning, som du gør SELECT MAX(id)+1
.
Men det behøver du ikke.
MySQL vil aldrig tildele et auto-increment id mindre end den største værdi i tabellen i øjeblikket. Så hvis du har en tabel med id-værdi 102, vil den næste tildelte værdi være mindst 103.
Du kan endda prøve at indstille AUTO_INCREMENT=50 eksplicit, men det øges automatisk til MAX(id)+1.