-- 检查题库导入问题诊断SQL -- 问题:在考试管理中无法看到新建的题库 -- ======================================== -- 第1步:检查题库数据 -- ======================================== -- 1.1 查看所有题库及其创建者信息 SELECT id AS 题库ID, bank_name AS 题库名称, subject_name AS 科目, question_count AS 题目数量, create_user_id AS 创建用户ID, create_by AS 创建者用户名, create_time AS 创建时间 FROM study_question_bank ORDER BY create_time DESC; -- 1.2 检查哪些题库的 create_user_id 为空 SELECT id AS 题库ID, bank_name AS 题库名称, CASE WHEN create_user_id IS NULL THEN '❌ create_user_id为空' ELSE '✓ 有创建用户ID' END AS 状态, create_by AS 创建者用户名, create_time AS 创建时间 FROM study_question_bank ORDER BY create_time DESC; -- ======================================== -- 第2步:检查用户信息 -- ======================================== -- 2.1 查看当前登录用户的ID(需要在实际使用时替换) -- 从 sys_user 表查找你的用户ID SELECT user_id AS 用户ID, user_name AS 用户名, nick_name AS 昵称, create_time AS 创建时间 FROM sys_user WHERE user_name = 'admin' -- ⚠️ 替换为你的登录用户名 OR nick_name LIKE '%教师%'; -- ======================================== -- 第3步:检查题库与用户的关联 -- ======================================== -- 3.1 检查题库是否关联到正确的用户 SELECT b.id AS 题库ID, b.bank_name AS 题库名称, b.create_user_id AS 创建用户ID, u.user_name AS 创建用户名, u.nick_name AS 用户昵称, CASE WHEN b.create_user_id IS NULL THEN '❌ 未关联用户' WHEN u.user_id IS NULL THEN '❌ 用户不存在' ELSE '✓ 正常' END AS 关联状态 FROM study_question_bank b LEFT JOIN sys_user u ON b.create_user_id = u.user_id ORDER BY b.create_time DESC; -- ======================================== -- 第4步:检查题库中的题目 -- ======================================== -- 4.1 查看题库中是否有题目 SELECT b.id AS 题库ID, b.bank_name AS 题库名称, b.question_count AS 记录的题目数, COUNT(i.id) AS 实际题目数, CASE WHEN COUNT(i.id) = 0 THEN '❌ 题库为空' WHEN b.question_count != COUNT(i.id) THEN '⚠️ 数量不一致' ELSE '✓ 正常' END AS 状态 FROM study_question_bank b LEFT JOIN study_question_bank_item i ON b.id = i.bank_id GROUP BY b.id, b.bank_name, b.question_count ORDER BY b.create_time DESC; -- 4.2 查看题目详情 SELECT i.id AS 题目ID, i.bank_id AS 题库ID, b.bank_name AS 题库名称, i.question_type AS 题型, LEFT(i.question_content, 50) AS 题目内容, i.create_time AS 创建时间 FROM study_question_bank_item i LEFT JOIN study_question_bank b ON i.bank_id = b.id ORDER BY i.create_time DESC LIMIT 20; -- ======================================== -- 第5步:修复方案(根据诊断结果选择执行) -- ======================================== -- 方案A:如果 create_user_id 为空,手动关联到当前用户 -- ⚠️ 执行前请先确认你的用户ID! -- 例如:假设你的用户ID是 1(admin通常是1) -- 查看需要修复的题库 SELECT id AS 题库ID, bank_name AS 题库名称, create_by AS 创建者 FROM study_question_bank WHERE create_user_id IS NULL; -- 修复:将 create_user_id 设置为当前用户ID -- UPDATE study_question_bank -- SET create_user_id = 1 -- ⚠️ 替换为你的用户ID -- WHERE create_user_id IS NULL; -- 方案B:如果题库的 question_count 不准确,重新统计 UPDATE study_question_bank b SET question_count = ( SELECT COUNT(*) FROM study_question_bank_item i WHERE i.bank_id = b.id ); -- ======================================== -- 第6步:验证修复结果 -- ======================================== -- 6.1 验证:模拟后端查询(当前用户的题库) -- ⚠️ 将 1 替换为你的实际用户ID SELECT id AS 题库ID, bank_name AS 题库名称, subject_name AS 科目, question_count AS 题目数量, create_time AS 创建时间 FROM study_question_bank WHERE create_user_id = 1 -- ⚠️ 替换为你的用户ID ORDER BY create_time DESC; -- 6.2 如果上面的查询有结果,说明修复成功 -- 刷新考试管理页面,应该能看到题库了 -- ======================================== -- 使用说明 -- ======================================== -- -- 1. 先执行第1-4步的诊断SQL,查看问题原因 -- 2. 根据诊断结果,选择执行第5步的修复SQL -- 3. 执行第6步验证修复结果 -- 4. 刷新前端页面(考试管理 → 创建考试 → 选择题库) -- -- 常见问题: -- Q1: 题库列表为空 -- A1: create_user_id 为空,执行方案A修复 -- -- Q2: 题库有题目但显示数量为0 -- A2: question_count 不准确,执行方案B修复 -- -- Q3: 题库和题目都存在但考试管理中看不到 -- A3: create_user_id 与当前登录用户ID不匹配,执行方案A修复 --