php - 如何在mysql中的自动增量字段前面添加文本(如: TTT00001)?

标签 php mysql

我想用 mysql 在我的自动增量字段前面放置一些文本, 但我仍然没有答案来做到这一点。 这是我要插入表中的示例数据

“IDC00000001”

我现在所做的只是使用零填充格式自动递增整数, 结果只是 00000001。

我希望数字自动递增。所以当再次插入一些数据时就会像这样 “IDC00000002”,“IDC00000003”,........,“IDC00000022”等

我的问题:

  1. 这个案子如何解决?
  2. 我需要存储程序吗?
  3. 执行此操作的最佳实践是什么,是在插入之前在 php 中准备还是直接在 mysql 中准备?

最佳答案

您需要的是触发器和一张表。尝试下面的触发器;

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

不要忘记创建序列表;

CREATE TABLE tableName_seq
(
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE tableName
(
  id VARCHAR(11) NOT NULL PRIMARY KEY DEFAULT '0'
);

当您将数据插入tableName表时,您的第一个ID将为IDC00000001,第二个IDC00000002也是如此。希望对您有所帮助!

关于php - 如何在mysql中的自动增量字段前面添加文本(如: TTT00001)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553282/

相关文章:

php - 创建一个以 API 为中心的应用程序,我自己的疑惑

PHP 文件系统分页

mysql - 完全覆盖 Rails ActiveRecord 中的集合

MySQL ORDER BY,使用列 mod_time,但如果 mod_time 为 0,则使用列 create_time

php - 层级评论系统php

php - 创建一个结果集,它结合了 MySQL 中多个查询的结果?

php - 在 mysql php 搜索重音字符中也突出显示搜索词

mysql - 在 mysql 中使用单个查询计算多个值

php - 获取 Oracle 中存在但 MySQL 中缺失的记录的挑战

mysql - 如何按文本的第一个字母分组