sql >> Databasteknik >  >> RDS >> Mysql

Hur sätter man text framför autoinkrementfältet i mysql (som:TTT00001)?

Vad du behöver är trigger och ett bord till. Prova den här utlösaren nedan;

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 ;

Glöm inte att skapa sekvenstabell;

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 infogar data i tabellen tabellnamn kommer ditt första ID att vara IDC00000001 och andra IDC00000002 blir så. Jag hoppas att det hjälper!




  1. Kontrollera för x dagar i följd - givna tidsstämplar i databasen

  2. CakePHP-frågaförberedelse med join-sats och underfråga

  3. Enklaste en-till-många Map case i Hibernate fungerar inte i MySQL

  4. Hur kan jag starta PostgreSQL-servern på Mac OS X?