MySQL 中带前缀的自增主键
需要指定前缀的自增主键,如 ' LHPL001'、'LHPL002' 等等?这是在 MySQL 中实现此目的的简明指南。
一种方法涉及利用单独的排序表和触发器来生成所需的前缀。步骤如下:
创建排序表:
CREATE TABLE table1_seq ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY );
创建目标表带有普通的 VARCHAR 主值键:
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 ;
通过此设置,您现在可以向 table1 中插入行,触发器将自动生成带前缀的主行key:
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark');
table1 表中的结果将是:
| ID | NAME | ------------------ | LHPL001 | Jhon | | LHPL002 | Mark |
请参阅提供的 SQLFiddle 演示以获取此方法的交互式演示。
以上是如何在MySQL中创建带有前缀的自增主键?的详细内容。更多信息请关注PHP中文网其他相关文章!