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

112 lines
3.2 KiB
SQL
Raw 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.

-- ========================================
-- 清理题库 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. 进入考试管理 → 创建考试,应该能看到所有题库