首页 > 其他 > 详细

记录一次存储过程的使用(2)

时间:2020-09-14 12:39:15      阅读:51      评论:0      收藏:0      [点我收藏+]
/*存储过程start--插入选项的code*/
DELIMITER //
DROP PROCEDURE
IF EXISTS INSERT_OPTION_VALUE//

CREATE PROCEDURE INSERT_OPTION_VALUE ()
BEGIN
  DECLARE done  INT DEFAULT 0;/*游标循环标志*/
  DECLARE v_field_id varchar(20) ;
  DECLARE v_field_column varchar(60) ;
  DECLARE v_business_type varchar(20) ;

    DECLARE fields CURSOR FOR
        select cf.id, cf.field_column, cf.business_type from t_custom_field cf where cf.field_input_type = 8 and cf.field_column is not null and cf.field_group in (1, 2);

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1 ;

    OPEN fields ;
    fieldloop : LOOP
    FETCH fields INTO v_field_id, v_field_column, v_business_type;
      IF done = 1 THEN
        LEAVE fieldloop ;
      END IF ;
          BEGIN
                IF v_field_column is not null and v_field_column <> ‘‘
                    and v_business_type is not null and v_business_type <> ‘‘
                    and v_field_id is not null and v_field_id <> ‘‘ THEN
                    CASE WHEN v_business_type = 01 THEN
                            SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(;
                            SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘01\‘, c.,v_field_column, from t_customer_potential c where c.validity = 1 and c.,v_field_column, is not null););
                            /*预编译*/
PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type
= 02 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘02\‘, c.,v_field_column, from t_customer c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 03 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘03\‘, c.,v_field_column, from t_linkman c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 04 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘04\‘, c.,v_field_column, from t_opportunity c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 05 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘05\‘, c.,v_field_column, from t_contract c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 15 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘15\‘, c.,v_field_column, from t_product c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 23 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘23\‘, c.,v_field_column, from t_payment_record c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 25 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘25\‘, c.,v_field_column, from t_sale_contract c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; WHEN v_business_type = 30 THEN SET @v_sql=INSERT INTO `t_option_value_rel_resource` (`id`, `field_id`, `data_id`, `business_type`, `code`)(; SET @v_sql= CONCAT(@v_sql,select UUID_SHORT(), ,v_field_id,, c.ID, \‘30\‘, c.,v_field_column, from t_bill_record c where c.validity = 1 and c.,v_field_column, is not null);); PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; ELSE SET done = 1; END CASE; SET done = 0; END IF ; END; END LOOP fieldloop ; CLOSE fields ; END ; call INSERT_OPTION_VALUE(); DROP PROCEDURE IF EXISTS INSERT_OPTION_VALUE; /*存储过程end*/

 

记录一次存储过程的使用(2)

原文:https://www.cnblogs.com/stromgao/p/13665908.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!