sql >> Database >  >> RDS >> Mysql

Hoe plaats ik tekst voor het auto-increment-veld in mysql (zoals:TTT00001)?

Wat je nodig hebt is een trigger en nog een tafel. Probeer deze trigger hieronder;

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 ;

Vergeet niet een volgordetabel te maken;

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

Wanneer u gegevens invoegt in de tabel tableName, is uw eerste id IDC00000001 en de tweede IDC00000002 gaat zo. Ik hoop dat het helpt!




  1. sqlite:hoe voeg ik de totale tijd toe uu:mm:ss waarbij het kolomgegevenstype DATETIME is?

  2. MariaDB JSON_ARRAY_APPEND() uitgelegd

  3. bewerking niet toegestaan ​​wanneer het object is gesloten bij het uitvoeren van een meer geavanceerde query

  4. TypeORM QueryRunner Selecteer onderscheiden