tuqin
3 天以前 62a704ad375729f656474537199ff610ba50e993
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- =============================================
-- 社保公积金方案:新增「大病医疗」「长期护理」两项保险比例(可重复执行)
-- 说明:与原有养老保险等一致,均存"比例"(0~1,decimal(10,4))
-- =============================================
SET NAMES utf8mb4;
 
-- 以「大病医疗企业比例」列是否存在作为是否已加过的判断(一次加 4 列)
SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
                    WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hrm_social_security_scheme'
                      AND COLUMN_NAME = 'serious_illness_company_ratio');
SET @ddl := IF(@col_exists = 0,
    'ALTER TABLE `hrm_social_security_scheme`
        ADD COLUMN `serious_illness_company_ratio` decimal(10,4) NULL COMMENT ''大病医疗企业缴纳比例'' AFTER `maternity_ratio`,
        ADD COLUMN `serious_illness_personal_ratio` decimal(10,4) NULL COMMENT ''大病医疗个人缴纳比例'' AFTER `serious_illness_company_ratio`,
        ADD COLUMN `long_term_care_company_ratio` decimal(10,4) NULL COMMENT ''长期护理企业缴纳比例'' AFTER `serious_illness_personal_ratio`,
        ADD COLUMN `long_term_care_personal_ratio` decimal(10,4) NULL COMMENT ''长期护理个人缴纳比例'' AFTER `long_term_care_company_ratio`',
    'SELECT 1');
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
 
SELECT '社保公积金方案:大病医疗/长期护理字段初始化完成' AS result;