-- ============================================================ -- 修复学生表的 dept_id 字段 -- -- 问题:学生创建时未根据所属学校设置 dept_id,导致数据权限过滤失效 -- 解决:根据学生所属学校的 dept_id 更新学生的 dept_id -- ============================================================ -- 查看需要修复的数据 SELECT s.student_id, s.student_name, s.school_id, s.dept_id AS student_dept_id, sc.school_name, sc.dept_id AS school_dept_id FROM pg_student s LEFT JOIN pg_school sc ON s.school_id = sc.school_id WHERE s.del_flag = '0' AND (s.dept_id IS NULL OR s.dept_id != sc.dept_id); -- 执行修复:将学生的 dept_id 更新为所属学校的 dept_id UPDATE pg_student s INNER JOIN pg_school sc ON s.school_id = sc.school_id SET s.dept_id = sc.dept_id WHERE s.del_flag = '0' AND sc.dept_id IS NOT NULL AND (s.dept_id IS NULL OR s.dept_id != sc.dept_id); -- 验证修复结果 SELECT COUNT(*) AS '修复后仍有问题的记录数' FROM pg_student s LEFT JOIN pg_school sc ON s.school_id = sc.school_id WHERE s.del_flag = '0' AND sc.dept_id IS NOT NULL AND (s.dept_id IS NULL OR s.dept_id != sc.dept_id);