Files
----/后端源码/yifan.action-ai.cn/api-bak/sql/fix_naming_solutions_no_data.sql

171 lines
5.2 KiB
SQL

-- ============================================
-- 改名方案无数据问题 - 一键修复脚本
-- ============================================
-- 第一步:检查当前状态
SELECT '=== 当前数据库状态检查 ===' as step;
-- 1. 检查表是否存在
SELECT
'表存在性检查' as check_item,
CASE WHEN COUNT(*) > 0 THEN '✓ 表存在' ELSE '✗ 表不存在' END as result
FROM information_schema.tables
WHERE table_name = 'yifan_naming_solutions';
-- 2. 检查数据量
SELECT
'数据量检查' as check_item,
CONCAT('', COUNT(*), ' 条数据') as result
FROM yifan_naming_solutions;
-- 3. 检查启用状态的数据
SELECT
'启用数据检查' as check_item,
CONCAT('启用: ', SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END), ' 条, ',
'停用: ', SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END), '') as result
FROM yifan_naming_solutions;
-- 4. 检查未删除的数据
SELECT
'删除状态检查' as check_item,
CONCAT('未删除: ', SUM(CASE WHEN is_deleted = 0 THEN 1 ELSE 0 END), ' 条, ',
'已删除: ', SUM(CASE WHEN is_deleted = 1 THEN 1 ELSE 0 END), '') as result
FROM yifan_naming_solutions;
-- 5. 检查报告表数据
SELECT
'报告表检查' as check_item,
CONCAT('', COUNT(*), ' 条报告') as result
FROM yifan_naming_reports;
-- ============================================
-- 第二步:插入测试数据
-- ============================================
SELECT '=== 开始插入测试数据 ===' as step;
-- 先确保有报告数据
INSERT INTO yifan_naming_reports
(category, service_type, surname, given_name, gender, birthday, address, user_id, status, is_deleted)
VALUES
('personal', 'naming', '测试', '用户', 'male', '2024-01-01 10:00:00', '北京市', 1, 0, 0)
ON DUPLICATE KEY UPDATE id=id;
-- 获取报告ID
SET @test_report_id = (SELECT id FROM yifan_naming_reports WHERE surname = '测试' AND given_name = '用户' LIMIT 1);
-- 插入测试方案(如果不存在)
INSERT INTO yifan_naming_solutions
(report_id, name, pinyin, total_score, star_rating, wuxing, shuxiang, tags, name_meaning, poetry_source, is_recommended, sort_order, status, is_deleted)
SELECT
@test_report_id,
'测试名字一',
'Ce Shi Ming Zi Yi',
95,
5,
'金木',
'',
'["吉祥如意","前程似锦"]',
'这是第一个测试方案,用于验证系统功能',
'出自测试诗词',
1,
1,
0,
0
WHERE NOT EXISTS (
SELECT 1 FROM yifan_naming_solutions WHERE name = '测试名字一'
);
INSERT INTO yifan_naming_solutions
(report_id, name, pinyin, total_score, star_rating, wuxing, shuxiang, tags, name_meaning, poetry_source, is_recommended, sort_order, status, is_deleted)
SELECT
@test_report_id,
'测试名字二',
'Ce Shi Ming Zi Er',
92,
5,
'水火',
'',
'["事业有成","财源广进"]',
'这是第二个测试方案,用于验证列表显示',
'出自测试典籍',
0,
2,
0,
0
WHERE NOT EXISTS (
SELECT 1 FROM yifan_naming_solutions WHERE name = '测试名字二'
);
INSERT INTO yifan_naming_solutions
(report_id, name, pinyin, total_score, star_rating, wuxing, shuxiang, tags, name_meaning, poetry_source, is_recommended, sort_order, status, is_deleted)
SELECT
@test_report_id,
'测试名字三',
'Ce Shi Ming Zi San',
88,
4,
'土金',
'',
'["平安顺遂","健康长寿"]',
'这是第三个测试方案,用于验证分页功能',
'出自测试经典',
0,
3,
0,
0
WHERE NOT EXISTS (
SELECT 1 FROM yifan_naming_solutions WHERE name = '测试名字三'
);
-- ============================================
-- 第三步:验证插入结果
-- ============================================
SELECT '=== 插入后数据验证 ===' as step;
-- 显示所有测试数据
SELECT
id,
report_id,
name,
pinyin,
total_score,
star_rating,
CASE status WHEN 0 THEN '启用' ELSE '停用' END as status_text,
CASE is_deleted WHEN 0 THEN '未删除' ELSE '已删除' END as deleted_text,
CASE is_recommended WHEN 1 THEN '' ELSE '' END as recommended_text
FROM yifan_naming_solutions
WHERE name LIKE '测试%'
ORDER BY sort_order;
-- 统计信息
SELECT
'总数据量' as stat_type,
COUNT(*) as count
FROM yifan_naming_solutions
UNION ALL
SELECT
'可查询数据(status=0 AND is_deleted=0)' as stat_type,
COUNT(*) as count
FROM yifan_naming_solutions
WHERE status = 0 AND is_deleted = 0;
-- ============================================
-- 第四步:提供清理命令(可选)
-- ============================================
SELECT '=== 如需清理测试数据,执行以下命令 ===' as step;
SELECT 'DELETE FROM yifan_naming_solutions WHERE name LIKE "测试%";' as cleanup_sql;
-- ============================================
-- 完成提示
-- ============================================
SELECT '=== 修复完成 ===' as step;
SELECT '请刷新前端页面,应该能看到测试数据了' as message;
SELECT '如果还是看不到,请检查:' as tip;
SELECT '1. 浏览器开发者工具 Network 标签,查看 API 响应' as tip1;
SELECT '2. 后端日志是否有错误' as tip2;
SELECT '3. 用户是否有 module_yifan:yifan_naming_solutions:query 权限' as tip3;