表结构与你的有点不同(我在你发布你的结构之前开始写这个 - 我使用日期时间字段),但我认为你仍然应该了解它是如何工作的:
CREATE TABLE IF NOT EXISTS `TestTable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` datetime NOT NULL,
  `no` varchar(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;
这里是INSERT触发器。
DELIMITER //
CREATE TRIGGER `Test` BEFORE INSERT ON `TestTable`
  FOR EACH ROW BEGIN
    DECLARE c INT;
    SET c = (SELECT COUNT(*) + 1 FROM TestTable WHERE YEAR(date)=YEAR(NOW()));
    SET NEW.date = NOW();
    SET NEW.no = CONCAT( SUBSTR(YEAR(NOW()),-2) ,"-", LPAD(c,3,'0') );
  END
//
DELIMITER ;
但是您可能应该考虑另一种结构并将您的PRNo  字段拆分为一个字段year和一个number字段,并且仅使用计数部分来创建每年的自动增量