guoyu/Study-Vue-redis/database_check_and_restore.sql
2025-12-03 18:58:36 +08:00

72 lines
2.7 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.

-- ============================================
-- 检查和恢复学员数据的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 = '');