如何在用户注册时为其生成ID。我想要的ID类型采用以下格式:(ABCDEF2015xxx)。例如,在2015年注册的第一个用户将具有此ID:ABCDEF2015001。下一个用户将具有ID:ABCDEF2015002。在第二年,第一个用户将拥有ID:ABCDEF2016001。
问候。
答案 0 :(得分:0)
我认为你可以通过使用触发器实现这一点。我从来没用过mysql。但谷歌搜索并写了一些示例触发器。我可能不会那样工作,你可能需要解决一些问题。但你可以遵循同样的想法。
CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table1_seq VALUES (NULL);
$query = mysql_query(CONCAT('SELECT max(CAST(SUBSTRING(id,11) AS BIGINT)) as id FROM table1 where SUBSTRING(ID,7,4) =',CAST(YEAR() AS CHAR)));
while ($row = mysql_fetch_object($query)) {
$lastId = $row->id;
}
if($lastid IS NULL) THEN
$newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), '001')
ELSE
$newid = CONCAT('ABCDEF', CAST(YEAR() AS CHAR), CAST($lastId+1 AS CHAR))
END IF;
SET NEW.id = $newid;
END$$