37 lines
1.2 KiB
MySQL
37 lines
1.2 KiB
MySQL
|
|
-- ============================================================
|
|||
|
|
-- 修复学生表的 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);
|