xinli/清理已删除用户档案.sql
2025-12-02 15:12:55 +08:00

44 lines
1.5 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.

-- ============================================
-- 清理已删除用户的档案数据
-- 用途:解决"信息编号已存在"但列表中看不到的问题
-- 日期2024-12-02
-- ============================================
-- 第一步:查看要删除的数据(确认)
SELECT
p.profile_id AS '档案ID',
p.info_number AS '信息编号',
p.user_id AS '关联用户ID',
u.user_name AS '用户账号',
u.del_flag AS '删除标记',
CASE
WHEN u.user_id IS NULL THEN '用户不存在'
WHEN u.del_flag = '2' THEN '用户已删除'
ELSE '正常'
END AS '状态',
p.create_time AS '创建时间'
FROM psy_user_profile p
LEFT JOIN sys_user u ON p.user_id = u.user_id
WHERE u.del_flag = '2' OR u.user_id IS NULL
ORDER BY CAST(p.info_number AS UNSIGNED);
-- 第二步:备份要删除的数据(可选但推荐)
CREATE TABLE IF NOT EXISTS psy_user_profile_deleted_backup_20241202 AS
SELECT p.*
FROM psy_user_profile p
LEFT JOIN sys_user u ON p.user_id = u.user_id
WHERE u.del_flag = '2' OR u.user_id IS NULL;
-- 第三步:删除已删除用户的档案
DELETE p FROM psy_user_profile p
LEFT JOIN sys_user u ON p.user_id = u.user_id
WHERE u.del_flag = '2' OR u.user_id IS NULL;
-- 查看删除结果
SELECT CONCAT('已删除 ', ROW_COUNT(), ' 条档案数据') AS '执行结果';
-- ============================================
-- 如果只想删除特定信息编号的档案如114
-- ============================================
-- DELETE FROM psy_user_profile WHERE info_number = '114';