-- ============================================ -- 检查和恢复学员数据的SQL脚本 -- ============================================ -- 步骤1:查看当前所有学员的数据(检查哪些数据丢失了) SELECT user_id AS '信息编号', user_name AS '账号', nick_name AS '罪犯姓名', sex AS '性别', prison_name AS '监狱', prison_area AS '监区', ethnicity AS '民族', education_level AS '文化程度', crime_name AS '罪名', sentence_term AS '刑期', sentence_start_date AS '刑期起日', sentence_end_date AS '刑期止日', entry_date AS '入监时间', student_status AS '学员状态', remark AS '备注' FROM sys_user WHERE remark LIKE '%注册类型:student%' AND del_flag = '0' ORDER BY user_id; -- 步骤2:查看最近的操作日志(可能包含更新前的数据) -- 查询最近修改用户的操作日志 SELECT oper_id AS '日志ID', oper_time AS '操作时间', oper_name AS '操作人', oper_param AS '请求参数', json_result AS '返回结果(更新后的数据)' FROM sys_oper_log WHERE title = '用户管理' AND business_type = 2 -- 2表示修改操作 AND oper_time >= DATE_SUB(NOW(), INTERVAL 2 DAY) -- 最近2天的操作 ORDER BY oper_time DESC LIMIT 100; -- 步骤3:如果有备份,请先恢复备份 -- 如果没有备份,需要手动恢复数据 -- 步骤4:手动恢复数据的示例SQL(请根据实际情况修改) -- 以下是一个示例,请根据您的实际数据修改: -- 示例:恢复某个学员的数据(请根据实际情况修改user_id和数据) -- UPDATE sys_user -- SET -- prison_name = '第一监狱', -- 请根据实际情况修改 -- prison_area = '一监区', -- 请根据实际情况修改 -- ethnicity = '汉族', -- 请根据实际情况修改 -- education_level = '初中', -- 请根据实际情况修改 -- crime_name = '盗窃罪', -- 请根据实际情况修改 -- sentence_term = 3, -- 请根据实际情况修改 -- sentence_start_date = '2023-01-01', -- 请根据实际情况修改 -- sentence_end_date = '2026-01-01', -- 请根据实际情况修改 -- entry_date = '2023-01-15', -- 请根据实际情况修改 -- student_status = 'incarcerated' -- 设置为在押状态 -- WHERE user_id = 110; -- 替换为实际的user_id -- 步骤5:批量恢复多个学员的数据(如果有相同的模式) -- 例如,如果多个学员都是从"第一监狱"的"一监区",可以批量恢复: -- UPDATE sys_user -- SET prison_name = '第一监狱', -- prison_area = '一监区' -- WHERE remark LIKE '%注册类型:student%' -- AND del_flag = '0' -- AND (prison_name IS NULL OR prison_name = '');