Pengurai tidak mendukung subkueri di tempat Anda mencoba menggunakannya.
Berikut kutipan dari sumber MySQL, dari sql/sql_yacc.yy:
create_table_option:
. . .
| AUTO_INC opt_equal ulonglong_num
Yang harus Anda baca di sana adalah AUTO_INCREMENT
opsi tabel hanya menerima satu nomor literal, bukan ekspresi atau subquery atau variabel atau apa pun. Jadi, Anda tidak dapat menyetel AUTO_INCREMENT dalam pernyataan yang sama dengan yang Anda lakukan SELECT MAX(id)+1
.
Tapi Anda tidak perlu melakukannya.
MySQL tidak akan pernah mengalokasikan id peningkatan otomatis kurang dari nilai terbesar saat ini dalam tabel. Jadi jika Anda memiliki tabel dengan nilai id 102, nilai selanjutnya yang dialokasikan adalah setidaknya 103.
Anda bahkan dapat mencoba menyetel AUTO_INCREMENT=50 secara eksplisit, tetapi itu akan ditingkatkan secara otomatis menjadi MAX(id)+1.