Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre du texte devant le champ d'incrémentation automatique dans mysql (comme :TTT00001) ?

Ce dont vous avez besoin, c'est d'un déclencheur et d'une autre table. Essayez ce déclencheur ci-dessous ;

DELIMITER $$
CREATE TRIGGER tg_tableName_insert
BEFORE INSERT ON tableName
FOR EACH ROW
BEGIN
  INSERT INTO tableName_seq VALUES (NULL);
  SET NEW.id = CONCAT('IDC', LPAD(LAST_INSERT_ID(), 8, '0'));
END$$
DELIMITER ;

N'oubliez pas de créer une table de séquence ;

CREATE TABLE tableName_seq
(
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE tableName
(
  id VARCHAR(11) NOT NULL PRIMARY KEY DEFAULT '0'
);

Lorsque vous insérez des données dans la table tableName, votre premier identifiant sera IDC00000001 et le second IDC00000002 va comme ça. J'espère que cela vous aidera !