79 lines
2.5 KiB
SQL
79 lines
2.5 KiB
SQL
-- ================================================================
|
||
-- 场地表字段修复脚本(保留数据版本)
|
||
-- 用途:为现有 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';
|