首页 > 数据库 > mysql教程 > MySQL如何给自增主键加上前缀?

MySQL如何给自增主键加上前缀?

Linda Hamilton
发布: 2024-12-14 00:45:17
原创
880 人浏览过

How Can I Prefix Auto-Incrementing Primary Keys in MySQL?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板