這些只是基本的思路,可能代碼并不能完美運行祖搓,細節(jié)方面就不在贅述狱意,自己調(diào)整,僅僅提供思路拯欧。
1.整體思路详囤,在觸發(fā)器中設計生成規(guī)則并且插入到相應的表中。
2.測試表镐作,
CREATE?TABLE?`worklist`?(
`listCode`?varchar(12)?NOT?NULL?DEFAULT?'',
`contacts`?varchar(10)?NOT?NULL,
PRIMARY?KEY?(`listCode`)
)?ENGINE=InnoDB?DEFAULT?CHARSET=gbk
3.測試觸發(fā)器
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 ;