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

Sådan får du MySQL-tabellens primærnøgle til automatisk at stige med et præfiks

Hvis du virkelig har brug for dette, kan du nå dit mål ved hjælp af en separat tabel til sekvensering (hvis du ikke har noget imod det) og 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 udløser

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 ;

Så indsætter du bare rækker til tabel1

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

Og du har

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

Her er SQLFiddle demo



  1. Fejlfinding af MySQL-replikering:del 1

  2. mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

  3. Hvordan sætter man en streng foran en kolonneværdi i MySQL?

  4. ROWIDTOCHAR() Funktion i Oracle