From 15ce253f4cd796306053651b08782142450aa2a6 Mon Sep 17 00:00:00 2001 From: wangjiahao <1522128093@qq.com> Date: Tue, 13 Jul 2021 10:34:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BB=AA=E8=A1=A8=E6=9D=BF=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=E8=A7=86=E5=9B=BE=E6=97=B6=E7=89=B9=E6=AE=8A=E6=83=85?= =?UTF-8?q?=E5=86=B5=E5=87=BA=E7=8E=B0=E9=87=8D=E5=90=8D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V14__update_function.sql | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 backend/src/main/resources/db/migration/V14__update_function.sql diff --git a/backend/src/main/resources/db/migration/V14__update_function.sql b/backend/src/main/resources/db/migration/V14__update_function.sql new file mode 100644 index 0000000000..7e5fc2d6ee --- /dev/null +++ b/backend/src/main/resources/db/migration/V14__update_function.sql @@ -0,0 +1,26 @@ +CREATE FUNCTION `GET_CHART_VIEW_COPY_NAME`(chartId varchar(255)) RETURNS varchar(255) CHARSET utf8 + READS SQL DATA +BEGIN + +DECLARE chartName varchar(255); + +DECLARE pid varchar(255); + +DECLARE regexpInfo varchar(255); + +DECLARE chartNameCount INTEGER; + +select `name` ,`scene_id` into chartName, pid from chart_view where id =chartId; +/** +因为名称存在()等特殊字符,所以不能直接用REGEXP进行查找,qrtz_locks +1.用like 'chartName%' 过滤可能的数据项 +2.REPLACE(name,chartName,'') REGEXP '-copy\\(([0-9])+\\)$' 过滤去掉chartName后的字符以 -copy(/d) 结尾的数据 +3.(LENGTH(REPLACE(name,chartName,''))-LENGTH(replace(REPLACE(name,chartName,''),'-',''))=1) 确定只出现一次 ‘-’ 防止多次copy +**/ +select (count(1)+1) into chartNameCount from chart_view +where (LENGTH(REPLACE(name,chartName,''))-LENGTH(replace(REPLACE(name,chartName,''),'-',''))=1) +and REPLACE(name,chartName,'') REGEXP '-copy\\(([0-9])+\\)$' and name like CONCAT(chartName,'%') and chart_view.scene_id=pid ; + +RETURN concat(chartName,'-copy(',chartNameCount,')'); + +END