44 lines
1.5 KiB
SQL
44 lines
1.5 KiB
SQL
-- ============================================
|
||
-- 清理已删除用户的档案数据
|
||
-- 用途:解决"信息编号已存在"但列表中看不到的问题
|
||
-- 日期: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';
|