Parser nie obsługuje podzapytania w miejscu, w którym próbujesz go użyć.
Oto fragment źródła MySQL, z sql/sql_yacc.yy:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
Powinieneś tam przeczytać, że AUTO_INCREMENT
Opcja table akceptuje tylko pojedynczą liczbę literału, a nie wyrażenie, podzapytanie, zmienną lub cokolwiek innego. Więc po prostu nie możesz ustawić AUTO_INCREMENT w tej samej instrukcji, w której robisz SELECT MAX(id)+1
.
Ale nie musisz.
MySQL nigdy nie przydzieli identyfikatora automatycznego przyrostu mniejszego niż największa obecnie wartość w tabeli. Więc jeśli masz tabelę o wartości identyfikatora 102, następną przydzieloną wartością będzie co najmniej 103.
Możesz nawet spróbować jawnie ustawić AUTO_INCREMENT=50, ale zostanie to automatycznie zwiększone do MAX(id)+1.