MySQL nie zwiększa automatycznie niczego poza liczbami całkowitymi. Nie możesz automatycznie zwiększać ciągu.
Nie możesz użyć wyzwalacza do wypełnienia ciągu na podstawie wartości automatycznego przyrostu. Powodem jest to, że wartość automatycznego przyrostu nie jest jeszcze generowana w momencie wykonania wyzwalaczy „przed” i jest za późno na zmianę kolumn w wyzwalaczach „po”.
Zobacz także moją odpowiedź na https://stackoverflow.com/a/26899091/20860
Nie możesz użyć kolumny wirtualnej, prawdopodobnie z tego samego powodu.
mysql> create table t (id int(5) zerofill auto_increment primary key,
virtcolumn char(8) as (concat('log-', id)));
ERROR 3109 (HY000): Generated column 'virtcolumn' cannot refer to auto-increment column.
Będziesz musiał pozwolić na automatyczne zwiększanie liczby całkowitej, a następnie użyć UPDATE do wypełnienia ciągu „log-nnnnnn” po zakończeniu wstawiania.
CREATE TABLE `t` (
`id` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
`log` char(9) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `t` () VALUES ();
UPDATE `t` SET `log` = CONCAT('log-', `id`) WHERE `id` = LAST_INSERT_ID();
SELECT * FROM `t`;
+-------+-----------+
| id | log |
+-------+-----------+
| 00001 | log-00001 |
+-------+-----------+