2016-02-29 123 views
0

我想在MySQL數據表中自動生成我的主鍵。但我希望它是一個字符串,儘管順序。什麼是自動生成主鍵的最佳方法?

實施例: USER_ID(主鍵)

USER000001

USER000002

USER000003

USER000004 ....等..

+4

忘記'用戶'部分,只是使用自動遞增的整數。 –

+0

@GordonLinoff是的,可以做到。但我希望它成爲USER000001。有沒有什麼方法可以通過它自己做到這一點,所以我不必爲此編寫任何代碼。 – Gaurav51289

+2

使用正常的自動增量列並將其連接到您希望在選擇查詢中使用的字符串 –

回答

-1

通過單獨的表對於排序和觸發器,您可以使用自動生成PK你的格式。

CREATE TABLE tableName_seq 
(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY 
); 
CREATE TABLE tableName 
(
    id VARCHAR(10) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30) 
); 

現在觸發

DELIMITER $$ 
CREATE TRIGGER tg_table_insert 
BEFORE INSERT ON tableName 
FOR EACH ROW 
BEGIN 
    INSERT INTO tableName_seq VALUES (NULL); 
    SET NEW.id = CONCAT('USER', LPAD(LAST_INSERT_ID(), 6, '0')); 
END$$ 
DELIMITER ; 

然後你只需插入行表

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

而且你必須

|   ID | NAME | 
------------------ 
| USER000001 | Jhon | 
| USER000002 | Mark | 
相關問題