
在MySQL 中建立帶有前綴的自動遞增主鍵
使用資料庫時,通常希望有一個主鍵不僅提供唯一的識別符,但也包含有意義的前綴以方便組織。如果您有一個包含名為“id”的主鍵列的表,並且希望使用“LHPL001”、“LHPL002”等前綴對其進行增量,那麼這裡有一個潛在的解決方案,使用單獨的表進行排序和觸發器:
表格設定
建立一個名為table1_seq的表來儲存序號和名為table1 的表,用於儲存實際數據,並具有所需的主鍵欄位:
1 2 3 4 5 6 7 8 | 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)
);
|
登入後複製
前綴自動增量觸發器
產生前綴主鍵,建立一個BEFORE INSERT觸發器table1:
1 2 3 4 5 6 7 8 9 | 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 ;
|
登入後複製
插入資料
觸發器到位後,您只需將行插入table1:
1 2 | INSERT INTO table1 (name)
VALUES ( 'Jhon' ), ( 'Mark' );
|
登入後複製
結果
table1中的資料現在將有前綴主鍵:
1 2 3 4 | | ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |
|
登入後複製
這種方法允許您使用有意義的前綴實現所需的自動遞增主鍵行為,從而簡化資料組織和檢索。
以上是如何在MySQL中建立帶有前綴的自增主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!