实际开发中,我们可能会遇到需要备份某些记录,为了方便备份,一条SQL就可以搞定。
举例:
1、根据旧id复制一份记录,新旧id传入
mybatis配置如下:
<insert id="copyModelInfoByid" parameterType="java.lang.String">
INSERT INTO `ldp_analy_model_info`
SELECT
#{newid},model_type,model_classfication,model_name,model_trade_type,
model_business_type,audit_matters,model_purpose,input_data,analysis_steps,
regulation,model_sql_type,model_sql,'1',other_model,
resource_flag,dept_code,org_code,col_num,create_by,create_time
FROM
ldp_analy_model_info
WHERE
id = #{oldid}
</insert>
mapper配置如下:
int copyModelInfoByid(@Param("oldid")String id, @Param("newid")String newid);
2、复制的新记录id需要UUID生成的方法
mybatis配置如下:
<insert id="copyModelParamByModelid" parameterType="java.lang.String">
INSERT INTO ldp_analy_model_param
SELECT
replace(uuid(),'-',''),#{newModelid},param_name,param_desc,param_type,value_pattren,default_value,
default_value_view,allow_null,value_list,sql_text,display_col_map,tree_col_map,
sort_by,display_flag,create_by,create_time
FROM
ldp_analy_model_param
WHERE
model_id = #{oldmodelid}
</insert>
mapper配置如下:
int copyModelParamByModelid(@Param("oldmodelid")String modelid, @Param("newModelid")String newModelid);
注:支持复制一条记录和多条记录