JobID 如下所示:ALC-YYYYMMDD-001。前三个是公司的首字母缩写,后三个是一个递增的数字,每天重置,并且随着工作的增加,一天内最多增加 999 个工作;我正在尝试使用的正是这最后三个。
我正在尝试获取一个插入前触发器来查找当天的最大 JobID,并添加一个,这样我就可以让触发器派生正确的 JobID。对于第一份工作,它当然会返回 null。这就是我到目前为止所拥有的。
通过以下我可以得到'000'的结果。
set @maxjobID =
(select SUBSTRING(
(Select MAX(
SUBSTRING((Select JobID FROM jobs WHERE SUBSTRING(JobID,5,8)=date_format(curdate(), '%Y%m%d')),4,12)
)
),14,3)
);
select lpad((select ifnull(@maxjobID,0)),3,'0')
但我真的需要添加一个保留前导零以增加当天的第一个和后续工作。我的问题是,一旦尝试添加“1”,我就会得到“BLOB”的返回。那是:
select lpad((select ifnull(@maxjobID,0)+1),3,'0')
返回“BLOB”
我需要它返回“001”,这样我就可以将该结果与 CO 首字母缩写和当前日期连接起来。