sql >> Databáze >  >> RDS >> Mysql

Jak provést automatické zvýšení primárního klíče tabulky MySQL s nějakou předponou

Pokud to opravdu potřebujete, můžete dosáhnout svého cíle pomocí samostatné tabulky pro sekvenování (pokud vám to nevadí) a spouštěče.

Tabulky

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)
);

Nyní spoušť

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 ;

Poté stačí vložit řádky do tabulky1

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

A budete mít

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

Zde je SQLFiddle demo



  1. Nejprve seřaďte podle konkrétní hodnoty pole

  2. TSQL Pivot bez agregační funkce

  3. Jak vytvořit objekt oracle.sql.ARRAY?

  4. pdo připravil příkazy se zástupnými znaky