MySQL पूर्णांकों के अलावा कुछ भी स्वत:वृद्धि नहीं करता है। आप किसी स्ट्रिंग को ऑटो-इन्क्रीमेंट नहीं कर सकते।
आप ऑटो-इन्क्रीमेंट मान के आधार पर स्ट्रिंग को पॉप्युलेट करने के लिए ट्रिगर का उपयोग नहीं कर सकते। इसका कारण यह है कि ऑटो-इन्क्रीमेंट मान अभी तक "ट्रिगर के निष्पादित होने से पहले" उत्पन्न नहीं हुआ है, और "बाद" ट्रिगर में कॉलम बदलने में बहुत देर हो चुकी है।
मेरा जवाब https://stackoverflow.com/a/26899091/20860 पर भी देखें।
आप शायद इसी कारण से वर्चुअल कॉलम का उपयोग नहीं कर सकते।
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.
आपको पूर्णांक ऑटो-इन्क्रीमेंट देना होगा, और फिर बाद में डालने के बाद अपनी "लॉग-एनएनएनएनएन" स्ट्रिंग को पॉप्युलेट करने के लिए अद्यतन का उपयोग करना होगा।
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 |
+-------+-----------+