拼接字符串: CONCAT('PAS',LPAD(partition_id,4,0))
填充字符串左边:LPAD
LPAD(str,len,padstr)
返回字符串str,将其左填充字符串padstr至len个字符的长度。 如果str大于len,则返回值缩短为len个字符。
填充字符串右边:RPAD
RPAD(str,len,padstr)
返回字符串str,用padstr右填充字符串,长度为len个字符。 如果str大于len,则返回值缩短为len个字符
1、根据前传 + 主键长度补0
update pf_partition_management set partition_no=CONCAT('PAS',LPAD(partition_id,4,0)) WHERE partition_no=''
2、如果前缀 + 主键长度大于4,取主键长度补0,否则为4的长度
update pf_partition_management set partition_no=CONCAT('PRE',LPAD(partition_id,(case when LENGTH(partition_id)>4 then LENGTH(partition_id) else 4 end),0)) WHERE partition_no=''
3、JAVA代码前缀补0:
/**
* 根据前缀和id,生成新的编号
*
* @param prefix 前缀
* @param id ID
* @return
*/
public static String getSerialNumber(String prefix, Long id) {
return prefix + String.format("%04d", id);
}