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

59 lines
1.3 KiB
MySQL
Raw Permalink Normal View History

2026-02-28 19:07:38 +08:00
-- ============================================
-- 验证 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);