MySQL không tự động tăng bất kỳ thứ gì khác ngoài số nguyên. Bạn không thể tự động tăng một chuỗi.
Bạn không thể sử dụng trình kích hoạt để điền một chuỗi dựa trên giá trị tăng tự động. Nguyên nhân là do giá trị tăng tự động chưa được tạo tại thời điểm "trước khi" trình kích hoạt thực thi và đã quá muộn để thay đổi các cột trong trình kích hoạt "sau".
Xem thêm câu trả lời của tôi cho https://stackoverflow.com/a/26899091/20860
Bạn không thể sử dụng một cột ảo, có thể vì lý do tương tự.
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ạn sẽ phải để số nguyên tự động tăng lên, sau đó sử dụng UPDATE để điền chuỗi "log-nnnnnn" của bạn sau khi việc chèn hoàn tất.
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 |
+-------+-----------+