guoyu/Test/sql/清理题库create_user_id限制.sql

112 lines
3.2 KiB
MySQL
Raw Normal View History

-- ========================================
-- 清理题库 create_user_id 限制
-- 目的:让所有用户都能看到所有题库
-- ========================================
-- 说明:
-- 现在后端已修改为返回所有题库,不再按用户过滤
-- 但为了保证数据完整性,仍建议为题库设置 create_user_id
-- ========================================
-- 第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;
-- 检查哪些题库的 create_user_id 为空
SELECT
id,
bank_name,
create_by,
create_time
FROM study_question_bank
WHERE create_user_id IS NULL
ORDER BY create_time DESC;
-- ========================================
-- 第2步修复空的 create_user_id可选但推荐
-- ========================================
-- 虽然现在接口不依赖 create_user_id 过滤
-- 但为了数据完整性,建议仍然填充这个字段
-- 方法1根据 create_by 自动关联用户ID
UPDATE study_question_bank b
INNER JOIN sys_user u ON b.create_by = u.user_name
SET b.create_user_id = u.user_id
WHERE b.create_user_id IS NULL;
-- 方法2如果没有 create_by设置为默认管理员
-- UPDATE study_question_bank
-- SET create_user_id = 1 -- admin用户ID
-- WHERE create_user_id IS NULL;
-- ========================================
-- 第3步同步题目数量
-- ========================================
-- 确保 question_count 准确
UPDATE study_question_bank b
SET question_count = (
SELECT COUNT(*)
FROM study_question_bank_item i
WHERE i.bank_id = b.id
);
-- ========================================
-- 第4步验证结果
-- ========================================
-- 查看所有题库(应该都有 create_user_id
SELECT
id,
bank_name,
subject_name,
question_count,
create_user_id,
create_by,
CASE
WHEN create_user_id IS NULL THEN '⚠️ 缺少用户ID'
WHEN question_count = 0 THEN '⚠️ 没有题目'
ELSE '✓ 正常'
END AS
FROM study_question_bank
ORDER BY create_time DESC;
-- 统计题库状态
SELECT
COUNT(*) AS ,
SUM(CASE WHEN create_user_id IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN create_user_id IS NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN question_count > 0 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN question_count = 0 THEN 1 ELSE 0 END) AS
FROM study_question_bank;
-- ========================================
-- 完成!
-- ========================================
--
-- ✓ 后端已修改:/study/questionBank/my-banks 现在返回所有题库
-- ✓ 前端不需要修改:仍使用同一个接口
-- ✓ 现在所有用户都能看到所有题库
--
-- 注意:
-- 1. 需要重新编译后端mvn clean package
-- 2. 重启后端服务
-- 3. 刷新前端页面
-- 4. 进入考试管理 → 创建考试,应该能看到所有题库