在MySQL 中為自動遞增主鍵添加前綴
作為資料庫管理員,您可能會遇到這樣的情況:您想要為自動遞增主鍵添加前綴使用特定值遞增主鍵。在本指南中,我們將探索使用單獨的排序表和觸發器的解決方案。
建立排序表
首先,建立一個表格來產生序列值:
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
建立主程式表
接下來,使用VARCHAR類型建立主鍵列並指定預設值「0」:
CREATE TABLE table1 ( id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) );
前綴觸發器主鍵
要為主鍵設定前綴值,請建立一個在每次插入之前觸發的觸發器對主表的操作:
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 ;
向主表插入資料
現在,您可以在不指定主鍵值的情況下向主表插入資料。觸發器將自動產生 ID 並為其添加前綴:
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
輸出
插入資料後,表將顯示以下帶有前綴主鍵的記錄:
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
SQLFiddle示範
實際示範可以參考這裡的SQLFiddle示範:[連結]
以上是MySQL如何為自增主鍵加上前綴?的詳細內容。更多資訊請關注PHP中文網其他相關文章!