Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencipta Kunci Utama Auto-Incrementing dengan Awalan dalam MySQL?

Bagaimana untuk Mencipta Kunci Utama Auto-Incrementing dengan Awalan dalam MySQL?

DDD
Lepaskan: 2024-12-17 16:32:15
asal
1030 orang telah melayarinya

How to Create an Auto-Incrementing Primary Key with a Prefix in MySQL?

Kunci Utama Penambahan Auto dengan Awalan dalam MySQL

Memerlukan kunci utama penambahan automatik dengan awalan tertentu, seperti ' LHPL001', 'LHPL002' dan sebagainya? Berikut ialah panduan ringkas untuk mencapainya dalam MySQL.

Satu pendekatan melibatkan penggunaan jadual penjujukan yang berasingan dan pencetus untuk menjana awalan yang diingini. Di bawah ialah langkah-langkah:

  1. Buat jadual jujukan:

    CREATE TABLE table1_seq
    (
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    );
    Salin selepas log masuk
  2. Buat jadual sasaran dengan asas VARCHAR biasa kunci:

    CREATE TABLE table1
    (
      id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
      name VARCHAR(30)
    );
    Salin selepas log masuk
  3. Buat pencetus:

    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 ;
    Salin selepas log masuk

Dengan persediaan ini, anda kini boleh memasukkan baris ke dalam jadual1, dan pencetus akan menjana primer awalan secara automatik kunci:

INSERT INTO Table1 (name) 
VALUES ('Jhon'), ('Mark');
Salin selepas log masuk

Hasil dalam jadual jadual1 ialah:

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |
Salin selepas log masuk

Rujuk demo SQLFiddle yang disediakan untuk demonstrasi interaktif pendekatan ini.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kunci Utama Auto-Incrementing dengan Awalan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan