BEFORE INSERT
を指定しない限り、1つの列でそれを行うことはできません。 auto_incrementが独自に処理するあらゆる種類の競合状態を回避するために、事前に入力するトリガーを完全にユーザーに任せます。 auto_incrementは、整数列または浮動小数点列でのみ使用できます。
私の意見では、「PKを要求する」には特定の形式があり、「自動インクリメントするだけ」は相互に排他的です。
これは、selectで「偽造」できないという意味ではありません:
SELECT CONCAT('ABC1',LPAD(id,5,'0')) FROM tablename;