2016-02-29 121 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 | 
相关问题