peixue-dev/Archive/[一次性]验证user_roles表-2026-02-28.sql

59 lines
1.3 KiB
SQL
Raw Permalink 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.

-- ============================================
-- 验证 user_roles 表数据
-- ============================================
-- 1. 检查表是否创建成功
SHOW TABLES LIKE 'user_roles';
-- 2. 查看表结构
DESC user_roles;
-- 3. 统计数据
SELECT
'总记录数' as item,
COUNT(*) as count
FROM user_roles
UNION ALL
SELECT
'用户数',
COUNT(DISTINCT user_id)
FROM user_roles
UNION ALL
SELECT
'主身份数',
COUNT(*)
FROM user_roles
WHERE is_primary = 1;
-- 4. 查看各角色分布
SELECT
role_type,
COUNT(*) as count,
COUNT(IF(is_primary = 1, 1, NULL)) as primary_count
FROM user_roles
GROUP BY role_type
ORDER BY count DESC;
-- 5. 查看前20条数据包含用户信息
SELECT
u.id,
u.phone,
u.role as user_table_role,
ur.role_type as user_roles_table_role,
IF(ur.is_primary = 1, '主身份', '附加身份') as role_status,
ur.create_time
FROM user u
INNER JOIN user_roles ur ON u.id = ur.user_id
ORDER BY u.id
LIMIT 20;
-- 6. 检查数据一致性user.role 应该等于 user_roles 中的主身份)
SELECT
'数据一致性检查' as check_item,
COUNT(*) as inconsistent_count
FROM user u
LEFT JOIN user_roles ur ON u.id = ur.user_id AND ur.is_primary = 1
WHERE u.role IS NOT NULL
AND u.role != ''
AND (ur.role_type IS NULL OR u.role != ur.role_type);