Вы пытаетесь автоматически увеличить столбец VARCHAR. Вы не можете сделать это & trade ;.
Столбцы VARCHAR, содержащие текст целых чисел, как известно, трудно правильно ЗАКАЗАТЬ.
В MySQL автоматически заполненный (автоинкрементный) столбец ID должен иметь целочисленный тип данных.
Попробуйте изменить
`id` varchar(36) NOT NULL,
до
`id` UNSIGNED BIGINT NOT NULL AUTO_INCREMENT,
(Я выбрал UNSIGNED BIGINT, потому что это самое большое доступное целое число, и ваш выбор 36 в вашем VARCHAR (36) позволяет сделать вид, что вы ожидаете огромное количество строк в этой таблице. Но UNSIGNED INT даст вам четыре гигаруса , что, вероятно, достаточно.)
Если вы решите использовать триггер или другие средства для генерации значений автоинкрементации для столбца VARCHAR ID, вам придется проделать большую тяжелую работу с транзакциями, чтобы избежать возможности дублирования значений.
Если ваше клиентское программное обеспечение должно видеть этот столбец как VARCHAR, вы можете сделать это в представлении или выбрать. SELECT CAST(id AS VARCHAR(36)) id
делает это.