我想用 mysql 在我的自动增量字段前面放置一些文本, 但我仍然没有答案来做到这一点。 这是我要插入表中的示例数据
“IDC00000001”
我现在所做的只是使用零填充格式自动递增整数, 结果只是 00000001。
我希望数字自动递增。所以当再次插入一些数据时就会像这样 “IDC00000002”,“IDC00000003”,........,“IDC00000022”等
我的问题:
- 这个案子如何解决?
- 我需要存储程序吗?
- 执行此操作的最佳实践是什么,是在插入之前在 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/