Files
martial-master/database/martial-db/add_venue_fields.sql
宅房 7aa6545cbb
All checks were successful
continuous-integration/drone/push Build is passing
fix bugs
2025-12-12 05:13:10 +08:00

79 lines
2.5 KiB
SQL
Raw Permalink 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.
-- ================================================================
-- 场地表字段修复脚本(保留数据版本)
-- 用途:为现有 martial_venue 表添加缺失的字段,不删除已有数据
-- 日期2025-12-06
-- ================================================================
-- 检查并添加 max_capacity 字段
SET @col_exists = 0;
SELECT COUNT(*) INTO @col_exists
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'martial_venue'
AND COLUMN_NAME = 'max_capacity';
SET @sql = IF(@col_exists = 0,
'ALTER TABLE martial_venue ADD COLUMN max_capacity int(11) DEFAULT 100 COMMENT ''最大容纳人数'' AFTER venue_code',
'SELECT ''max_capacity 字段已存在'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 检查并添加 facilities 字段(如果也缺失)
SET @col_exists = 0;
SELECT COUNT(*) INTO @col_exists
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'martial_venue'
AND COLUMN_NAME = 'facilities';
SET @sql = IF(@col_exists = 0,
'ALTER TABLE martial_venue ADD COLUMN facilities varchar(500) DEFAULT NULL COMMENT ''场地设施'' AFTER description',
'SELECT ''facilities 字段已存在'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 检查并添加 status 字段(如果也缺失)
SET @col_exists = 0;
SELECT COUNT(*) INTO @col_exists
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'martial_venue'
AND COLUMN_NAME = 'status';
SET @sql = IF(@col_exists = 0,
'ALTER TABLE martial_venue ADD COLUMN status int(2) DEFAULT 1 COMMENT ''状态(0-禁用,1-启用)'' AFTER sort_order',
'SELECT ''status 字段已存在'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- ================================================================
-- 验证表结构
-- ================================================================
SELECT '字段添加完成,正在验证...' AS info;
SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_DEFAULT, IS_NULLABLE, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'martial_venue'
ORDER BY ORDINAL_POSITION;
-- 检查 max_capacity 字段是否存在
SELECT
CASE
WHEN COUNT(*) > 0 THEN '✓ max_capacity 字段已成功添加'
ELSE '✗ max_capacity 字段仍然缺失'
END AS result
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'martial_venue'
AND COLUMN_NAME = 'max_capacity';