这些只是基本的思路,可能代码并不能完美运行,细节方面就不在赘述,自己调整,仅仅提供思路。
1.整体思路,在触发器中设计生成规则并且插入到相应的表中。
2.测试表,
CREATE TABLE `worklist` (
`listCode` varchar(12) NOT NULL DEFAULT ”,
`contacts` varchar(10) NOT NULL,
PRIMARY KEY (`listCode`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
3.测试触发器
DELIMITER $$
USE `test`$$
DROP TRIGGER /*!50032 IF EXISTS */ `setSeqCustomVal`$$
CREATE
/*!50017 DEFINER = ‘root’@’localhost’ */
TRIGGER `setSeqCustomVal` BEFORE INSERT ON `worklist`
FOR EACH ROW BEGIN
DECLARE dateStr VARCHAR(12) CHARACTER SET gbk;
SET dateStr = DATE_FORMAT(NOW(), ‘%Y%m%d’);
SET @maxCode = (SELECT MAX(listCode) FROM worklist WHERE listCode LIKE CONCAT(dateStr, ‘%’));
IF @maxCode IS NULL
THEN
SET new.listCode = CONCAT(dateStr, ‘0001’);
ELSE
SET new.listCode = CAST(@maxCode + 1 AS CHAR);
END IF;
END;
$$
DELIMITER ;