Files
happy-life-star/backend/verify-database-script.sql
T

82 lines
2.6 KiB
SQL

-- ============================================================================
-- 数据库脚本验证查询
-- 用于验证 mysql_emotion_museum_final.sql 执行后的表结构
-- ============================================================================
-- 验证数据库是否存在
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'emotion_museum';
-- 验证所有表是否创建成功
SELECT TABLE_NAME, TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'emotion_museum'
ORDER BY TABLE_NAME;
-- 验证conversation表的字段结构(重点验证新增字段)
SELECT
COLUMN_NAME,
DATA_TYPE,
IS_NULLABLE,
COLUMN_DEFAULT,
COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'emotion_museum'
AND TABLE_NAME = 'conversation'
ORDER BY ORDINAL_POSITION;
-- 验证conversation表的索引
SELECT
INDEX_NAME,
COLUMN_NAME,
NON_UNIQUE
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'emotion_museum'
AND TABLE_NAME = 'conversation'
ORDER BY INDEX_NAME, SEQ_IN_INDEX;
-- 验证新增字段是否存在
SELECT
CASE
WHEN COUNT(*) = 9 THEN '✅ 所有新增字段都存在'
ELSE CONCAT('❌ 缺少字段,只找到 ', COUNT(*), ' 个,应该是 9 个')
END AS validation_result
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'emotion_museum'
AND TABLE_NAME = 'conversation'
AND COLUMN_NAME IN (
'user_type', 'emotion_trend', 'keywords', 'ai_insights',
'confidence', 'client_ip', 'user_agent', 'summary', 'tags'
);
-- 验证新增索引是否存在
SELECT
CASE
WHEN COUNT(*) = 4 THEN '✅ 所有新增索引都存在'
ELSE CONCAT('❌ 缺少索引,只找到 ', COUNT(*), ' 个,应该是 4 个')
END AS index_validation_result
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'emotion_museum'
AND TABLE_NAME = 'conversation'
AND INDEX_NAME IN (
'idx_conversation_user_type',
'idx_conversation_emotion_trend',
'idx_conversation_confidence',
'idx_conversation_client_ip'
);
-- 统计总表数
SELECT
CASE
WHEN COUNT(*) = 15 THEN '✅ 所有15个表都创建成功'
ELSE CONCAT('❌ 表数量不正确,只有 ', COUNT(*), ' 个表,应该是 15 个')
END AS table_count_result
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'emotion_museum';
-- 统计总索引数(conversation表)
SELECT
CONCAT('conversation表共有 ', COUNT(DISTINCT INDEX_NAME), ' 个索引') AS conversation_index_count
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'emotion_museum'
AND TABLE_NAME = 'conversation';