guoyu/log/删除用户-userId大于200.sql

95 lines
2.1 KiB
MySQL
Raw Normal View History

2025-12-12 16:01:11 +08:00
-- 1⃣ 先查看要删除的用户(确认范围)
SELECT user_id, user_name, nick_name, register_type, create_time
FROM sys_user
WHERE user_id > 200 AND del_flag = '0'
ORDER BY user_id;
-- 2⃣ 查看影响范围(统计)
SELECT
'用户数' AS ,
COUNT(*) AS
FROM sys_user
WHERE user_id > 200 AND del_flag = '0'
UNION ALL
SELECT
'学习记录数',
COUNT(*)
FROM learning_record
WHERE student_id > 200
UNION ALL
SELECT
'学习详情数',
COUNT(*)
FROM learning_detail
WHERE student_id > 200
UNION ALL
SELECT
'考试成绩数',
COUNT(*)
FROM score
WHERE student_id > 200
UNION ALL
SELECT
'班级关联数',
COUNT(*)
FROM student_class
WHERE student_id > 200;
-- ============================================================
-- ⚠️ 确认无误后,执行以下删除操作
-- ============================================================
-- 3⃣ 删除关联数据(按顺序)
-- 删除学习详情
DELETE FROM learning_detail
WHERE student_id > 200;
-- 删除学习记录
DELETE FROM learning_record
WHERE student_id > 200;
-- 删除考试成绩
DELETE FROM score
WHERE student_id > 200;
-- 删除班级关联
DELETE FROM student_class
WHERE student_id > 200;
-- 删除用户角色关联
DELETE FROM sys_user_role
WHERE user_id > 200;
-- 删除课程分配(如果用户是学生)
DELETE FROM course_assignment
WHERE student_id > 200;
-- 4⃣ 最后删除用户表记录
DELETE FROM sys_user
WHERE user_id > 200 AND del_flag = '0';
-- 5⃣ 验证删除结果
SELECT
'剩余用户数' AS ,
COUNT(*) AS
FROM sys_user
WHERE del_flag = '0';
-- ============================================================
-- 💡 如果想使用逻辑删除(推荐,可恢复),使用以下语句代替
-- ============================================================
/*
-- 逻辑删除用户(设置 del_flag = '2'
UPDATE sys_user
SET del_flag = '2',
update_time = NOW()
WHERE user_id > 200 AND del_flag = '0';
-- 验证逻辑删除
SELECT user_id, user_name, nick_name, del_flag
FROM sys_user
WHERE user_id > 200;
*/