判断是否是特定db下的table var_data_from 中是否存在var_entity retrun 1 存在 0 不存在
DELIMITER $$
USE `portal_group`$$
DROP FUNCTION IF EXISTS `fc_sync_data`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `fc_sync_data`(
var_entity VARCHAR(50),
var_data_from_db VARCHAR(50)
) RETURNS VARCHAR(50) CHARSET utf8
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN
DECLARE var_count INT DEFAULT 0 ;
-- 得到实体 var_entity 在那些数据库里面
SELECT 1 INTO var_count FROM information_schema.TABLES WHERE TABLE_NAME = var_entity AND table_schema = var_data_from_db;
IF var_count = 0 THEN
RETURN '0';
ELSE
RETURN '1';
END IF;
END$$
DELIMITER ;
实体类转表 如 SysOption 转 sys_option
DELIMITER $$
USE `portal_group`$$
DROP FUNCTION IF EXISTS `fc_get_entity`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `fc_get_entity`(
var_entity_name VARCHAR(50)
) RETURNS VARCHAR(50) CHARSET utf8
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN
DECLARE var1 VARCHAR(50) DEFAULT NULL;
DECLARE var2 VARCHAR(50) DEFAULT NULL;
DECLARE var3 VARCHAR(50) DEFAULT NULL;
DECLARE var_entity_name_length INT;
DECLARE var_entity_name_index CHAR;
-- 首字母小写
SET var1 = TRIM(var_entity_name);
SET var2 = CONCAT (LOWER (SUBSTRING(var1,1,1)) ,SUBSTRING(var1,2));
SET var_entity_name_length = LENGTH(var1);
BEGIN
DECLARE i INT;
SET i=1;
WHILE i<= var_entity_name_length DO -- 遍历 实体类
SET var_entity_name_index = SUBSTRING(var2,i,1);
IF( ASCII (var_entity_name_index)>=ASCII('A')&&ASCII (var_entity_name_index)<=ASCII('Z')) THEN
SET var3 = REPLACE (var2,var_entity_name_index,CONCAT('_',LOWER(var_entity_name_index))); -- 第二个大写字母转换_小写
SET var2 = var3;
END IF;
SET i = i+1;
END WHILE;
END;
RETURN var2;
END$$
DELIMITER ;