delete from panel_view_linkage where panel_view_linkage.panel_id = #{panelId}
AND panel_view_linkage.source_view_id = #{sourceViewId}
DELETE pvl
FROM
panel_view_linkage pvl,
panel_view_linkage_field pvlf
WHERE
pvl.id = pvlf.linkage_id
AND pvl.source_view_id = #{panelId}
AND pvl.panel_id = #{panelId}
INSERT INTO `panel_view_linkage` ( menu_id, title, pid, sub_count, permission, hidden,i_frame ) VALUES
(#{menu.menuId},#{menu.title},#{menu.pid},#{menu.subCount},#{menu.permission},#{menu.hidden},ifnull(#{menu.hidden},0))
INSERT INTO panel_view_linkage (
id,
panel_id,
source_view_id,
target_view_id,
update_time,
update_people,
ext1,
ext2,
copy_from,
copy_id
) SELECT
UUID() AS id,
pv_source_copy.t_panel_id AS panel_id,
pv_source_copy.t_chart_view_id AS source_view_id,
pv_target_copy.t_chart_view_id target_view_id,
update_time,
update_people,
ext1,
ext2,
id as copy_from,
#{copyId} as copy_id
FROM
panel_view_linkage
INNER JOIN (
SELECT
pvs.panel_id AS s_panel_id,
pvs.chart_view_id AS s_chart_view_id,
pvt.panel_id AS t_panel_id,
pvt.chart_view_id AS t_chart_view_id
FROM
panel_view pvt
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
WHERE
pvt.copy_id = #{copyId}
) pv_source_copy ON panel_view_linkage.panel_id = pv_source_copy.s_panel_id
AND panel_view_linkage.source_view_id = pv_source_copy.s_chart_view_id
INNER JOIN (
SELECT
pvs.panel_id AS s_panel_id,
pvs.chart_view_id AS s_chart_view_id,
pvt.panel_id AS t_panel_id,
pvt.chart_view_id AS t_chart_view_id
FROM
panel_view pvt
inner JOIN panel_view pvs ON pvt.copy_from = pvs.id
WHERE
pvt.copy_id = #{copyId}
) pv_target_copy ON panel_view_linkage.panel_id = pv_target_copy.s_panel_id
AND panel_view_linkage.target_view_id = pv_target_copy.s_chart_view_id
INSERT INTO panel_view_linkage_field (
id,
linkage_id,
source_field,
target_field,
update_time,
copy_from,
copy_id
) SELECT
uuid() AS id,
pvlf_copy.t_id,
source_field,
target_field,
update_time,
id AS copy_from,
#{copyId} AS copy_id
FROM
panel_view_linkage_field
INNER JOIN (
SELECT
id AS t_id,
copy_from AS s_id
FROM
panel_view_linkage
WHERE
copy_id = #{copyId}
) pvlf_copy ON panel_view_linkage_field.linkage_id = pvlf_copy.s_id