如何在mysql中将文本放在自动增量字段前面(如:TTT00001)?

时间:2017-04-21 23:07:35

标签: php mysql

我想用mysql在我的自动增量字段前放一些文本, 但我仍然没有答案。 这是我要插入表

的示例数据

" IDC00000001"

我现在做的只是用zerofill格式自动递增整数, 结果就是00000001。

我希望数字自动递增。所以当再次插入一些数据时,它会是这样的 " IDC00000002"," IDC00000003",........," IDC00000022"等

我的问题:

  1. 如何解决这个案子?
  2. 我需要商店手续吗?
  3. 执行此操作的最佳做​​法是什么,在插入之前或在mysql中直接在php中准备这个?

1 个答案:

答案 0 :(得分:2)

您需要的是触发器和另外一张桌子。请尝试以下触发器;

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就是这样。我希望它有所帮助!