sql >> Databasteknik >  >> RDS >> Mysql

Hur man får MySQL-tabellens primärnyckel att automatiskt öka med något prefix

Om du verkligen behöver detta kan du uppnå ditt mål med hjälp av separat tabell för sekvensering (om du inte har något emot det) och en trigger.

Tabeller

CREATE TABLE table1_seq
(
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE table1
(
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30)
);

Nu utlösaren

DELIMITER $$
CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
  INSERT INTO table1_seq VALUES (NULL);
  SET NEW.id = CONCAT('LHPL', LPAD(LAST_INSERT_ID(), 3, '0'));
END$$
DELIMITER ;

Sedan infogar du bara rader till tabell1

INSERT INTO Table1 (name) 
VALUES ('Jhon'), ('Mark');

Och du kommer att ha

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |

Här är SQLFiddle demo



  1. Hur bygger man en kolvapplikation runt en redan befintlig databas?

  2. UniVers tips

  3. java.sql.SQLException:Ingen lämplig drivrutin hittades för jdbc:microsoft:sqlserver

  4. Hur man skapar vy i SQL