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