Вы не можете сделать это в одном столбце, если вы не укажете триггер BEFORE INSERT
, который бы его предварительно заполнил, оставив его на ваше усмотрение, чтобы избежать любых условий гонки, которые auto_increment обрабатывает самостоятельно. auto_increment может использоваться только для целочисленных столбцов или столбцов с плавающей точкой.
По моему мнению, «требование», чтобы PK имели определенный формат, и «просто автоматическое увеличение» являются взаимоисключающими.
Это не значит, что вы не можете «подделать» его при выборе:
SELECT CONCAT('ABC1',LPAD(id,5,'0')) FROM tablename;