sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sætter man tekst foran auto-increment-feltet i mysql (som:TTT00001)?

Det du skal bruge er trigger og et bord mere. Prøv denne trigger nedenfor;

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 ;

Glem ikke at oprette sekvenstabel;

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

Når du indsætter data i tabellen tabelnavn, vil dit første id være IDC00000001, og det andet IDC00000002 er sådan. Jeg håber, det hjælper!




  1. MySql, der kombinerer dato- og tidskolonne til et tidsstempel

  2. Fejl på PDO SSL-forbindelse

  3. Konverter mysql-forespørgselsresultater til CSV (med copy/paste)

  4. slet en post fra to tabeller i php/mysql