Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Awalan Kekunci Utama Auto-Incrementing dalam MySQL?

Bagaimanakah Saya Boleh Awalan Kekunci Utama Auto-Incrementing dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-14 00:45:17872semak imbas

How Can I Prefix Auto-Incrementing Primary Keys in MySQL?

Mengawalan Kekunci Utama Penambahan Auto dalam MySQL

Sebagai pentadbir pangkalan data, anda mungkin menghadapi situasi di mana anda ingin memberi awalan auto- anda menambah kunci utama dengan nilai tertentu. Dalam panduan ini, kami akan meneroka penyelesaian menggunakan jadual penjujukan yang berasingan dan pencetus.

Mencipta Jadual Penjujukan

Pertama, buat jadual untuk menjana nilai jujukan :

CREATE TABLE table1_seq (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

Mencipta Utama Jadual

Seterusnya, buat jadual utama anda dengan lajur kunci utama menggunakan jenis VARCHAR dan nyatakan nilai lalai '0':

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

Pencetus untuk Prefixing Kunci Utama

Untuk menetapkan nilai awalan bagi kunci utama, buat pencetus yang menyala sebelum setiap operasi sisipan pada jadual utama:

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 ;

Memasukkan Data ke dalam Jadual Utama

Kini, anda boleh memasukkan data ke dalam jadual utama tanpa menyatakan kunci utama nilai. Pencetus akan secara automatik menjana dan menetapkan awalan ID:

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

Output

Setelah memasukkan data, jadual akan memaparkan rekod berikut dengan kunci utama awalan:

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

SQLFiddle Demonstrasi

Untuk demonstrasi praktikal, anda boleh rujuk demo SQLFiddle di sini: [pautan]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Awalan Kekunci Utama Auto-Incrementing dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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