Парсерът не поддържа подзаявка на мястото, където се опитвате да го използвате.
Ето откъса от източника на MySQL, от sql/sql_yacc.yy:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
Това, което трябва да прочетете там е, че AUTO_INCREMENT
опцията table приема само едно буквално число, а не израз или подзаявка или променлива или нещо друго. Така че просто не можете да зададете AUTO_INCREMENT в същия израз, в който правите SELECT MAX(id)+1
.
Но не е нужно.
MySQL никога няма да разпредели идентификатор за автоматично увеличение по-малко от най-голямата стойност в момента в таблицата. Така че, ако имате таблица със стойност на идентификатор 102, следващата разпределена стойност ще бъде най-малко 103.
Можете дори да опитате да зададете AUTO_INCREMENT=50 изрично, но това ще се увеличи автоматично до MAX(id)+1.