Analyzátor nepodporuje dílčí dotaz v místě, kde se jej pokoušíte použít.
Zde je výňatek ze zdroje MySQL, z sql/sql_yacc.yy:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
Měli byste si přečíst, že AUTO_INCREMENT
tabulka přijímá pouze jedno doslovné číslo, nikoli výraz, poddotaz nebo proměnnou nebo cokoli jiného. Takže jednoduše nemůžete nastavit AUTO_INCREMENT ve stejném příkazu, ve kterém uděláte SELECT MAX(id)+1
.
Ale to nemusíte.
MySQL nikdy nepřidělí automatické zvýšení ID menší než nejvyšší aktuálně uvedená hodnota v tabulce. Pokud tedy máte tabulku s hodnotou id 102, další přidělená hodnota bude nejméně 103.
Můžete se dokonce pokusit explicitně nastavit AUTO_INCREMENT=50, ale to se automaticky zvýší na MAX(id)+1.