现象:
sql插入的时候生成一种指定的主键
方法:
(1):建立insert语句 sql的主键使用单独的sql主键生成语句
(2):生成主键的单独sql语句
(3):生成主键的样子
代码:
<!-- sql新增 -->
<insert id="addyhprocess" parameterType="com.oig.bean.Check">
insert into yh_process (flags,sysflags,idx,statusdate,vprepare,predate,remark,modifydate,modifier,ordcode,icode)
values(1,1,#{code},#{checktime},'9999',GETDATE(),#{remark},GETDATE(),#{wcode},#{ordcode},(<include refid="getIcodePrimary"/>))
</insert>
<!-- 进行的新增id形成 -->
<sql id="getIcodePrimary">
select (case when (select count(1) from yh_process where icode like 'A_______________')>0
then (select 'A'+right(REPLICATE('0',15) + rtrim((max(replace(icode,'A',''))+1)),15)
as icode from yh_process where icode like 'A_______________')
else (select 'A000000000000001')
end) as icode
</sql>