xykj-plus/xykj-admin-plus/script/sql/update/update_salary_social_security_unique.sql
2026-06-13 13:48:51 +08:00

39 lines
1.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ----------------------------
-- 为薪资表和社保表添加唯一约束
-- 约束规则员工ID + 年月 + 删除标志
-- 防止同一员工在同一月份有多条记录
-- ----------------------------
-- ----------------------------
-- 1. 工资表 biz_salary 添加唯一约束
-- ----------------------------
-- 先删除可能存在的旧约束
ALTER TABLE biz_salary DROP INDEX IF EXISTS uk_employee_salary_month;
ALTER TABLE biz_salary DROP INDEX IF EXISTS uk_employee_salary_month_del;
-- 添加唯一约束员工ID + 工资月份 + 删除标志
ALTER TABLE biz_salary
ADD UNIQUE KEY uk_employee_salary_month_del (employee_id, salary_month, del_flag)
COMMENT '同一员工同一月份只能有一条有效记录';
-- ----------------------------
-- 2. 社保表 biz_social_security 添加唯一约束
-- ----------------------------
-- 先删除可能存在的旧约束
ALTER TABLE biz_social_security DROP INDEX IF EXISTS uk_employee_belong_month;
ALTER TABLE biz_social_security DROP INDEX IF EXISTS uk_employee_belong_month_del;
-- 添加唯一约束员工ID + 所属月份 + 删除标志
ALTER TABLE biz_social_security
ADD UNIQUE KEY uk_employee_belong_month_del (employee_id, belong_month, del_flag)
COMMENT '同一员工同一月份只能有一条有效记录';
-- ----------------------------
-- 查询验证
-- ----------------------------
-- 查看工资表的唯一约束
SHOW INDEX FROM biz_salary WHERE Key_name = 'uk_employee_salary_month_del';
-- 查看社保表的唯一约束
SHOW INDEX FROM biz_social_security WHERE Key_name = 'uk_employee_belong_month_del';