-- ============================================= -- 社保公积金方案:新增「大病医疗」「长期护理」两项保险比例(可重复执行) -- 说明:与原有养老保险等一致,均存"比例"(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;