【发布时间】:2015-03-01 23:23:14
【问题描述】:
我看到另一篇文章解释了使用序列表创建前缀 AUTO INCREMENT ID。
SQL Fiddle
http://sqlfiddle.com/#!2/0ed88/1
我需要生成的自动增量格式为:YYMM + AUTO INCREMENT VALUE,每个月都会重置。比如现在是2015年1月,生成的id应该是:15011、15012、15013等。下个月2015年2月,生成的id应该是:15021、15022、15023等。我可以用上面的方法生成前缀,但是如何每个月重置 AUTO INCREMENT 值?数据库是 InnoDB。任何帮助将不胜感激:)
修改代码
CREATE TABLE table1_seq
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
)|
CREATE TABLE Table1
(
id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0', name VARCHAR(30)
)|
CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table1_seq VALUES (NULL);
SET NEW.id = CONCAT(DATE_FORMAT(NOW(),'%y%m'), LAST_INSERT_ID());
END |
INSERT INTO Table1 (name) VALUES ('Jhon'), ('Mark')|
【问题讨论】:
-
主键确实不需要特殊编码。只需使用自动递增的值。如果需要枚举一个月内的东西,查询的时候就可以了。
标签: mysql sql database auto-increment