-- ============================================================
|
-- 设备保养模块数据库修复脚本
|
-- 修复保养部位和保养项目字段缺失问题
|
-- 创建时间: 2026-05-18
|
-- ============================================================
|
|
-- ============================================================
|
-- 问题说明:
|
-- 1. maintenance_task 表缺少 maintenance_location (保养部位) 字段
|
-- 2. device_maintenance 表缺少 maintenance_items (保养项目) 字段
|
-- ============================================================
|
|
|
-- ----------------------------
|
-- 修复 1: 在 maintenance_task 表添加 maintenance_location (保养部位) 字段
|
-- ----------------------------
|
-- 先检查字段是否存在,不存在则添加
|
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE()
|
AND TABLE_NAME = 'maintenance_task'
|
AND COLUMN_NAME = 'maintenance_location');
|
SET @sql = IF(@col_exists = 0,
|
'ALTER TABLE `maintenance_task` ADD COLUMN `maintenance_location` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT ''保养部位''',
|
'SELECT ''maintenance_location column already exists'' AS result');
|
PREPARE stmt FROM @sql;
|
EXECUTE stmt;
|
DEALLOCATE PREPARE stmt;
|
|
|
-- ----------------------------
|
-- 修复 2: 在 device_maintenance 表添加 maintenance_items (保养项目) 字段
|
-- ----------------------------
|
-- 先检查字段是否存在,不存在则添加
|
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
WHERE TABLE_SCHEMA = DATABASE()
|
AND TABLE_NAME = 'device_maintenance'
|
AND COLUMN_NAME = 'maintenance_items');
|
SET @sql = IF(@col_exists = 0,
|
'ALTER TABLE `device_maintenance` ADD COLUMN `maintenance_items` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT ''保养项目''',
|
'SELECT ''maintenance_items column already exists'' AS result');
|
PREPARE stmt FROM @sql;
|
EXECUTE stmt;
|
DEALLOCATE PREPARE stmt;
|
|
|
-- ============================================================
|
-- 验证执行:查询表结构确认字段已添加
|
-- ============================================================
|
-- SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT
|
-- FROM INFORMATION_SCHEMA.COLUMNS
|
-- WHERE TABLE_NAME IN ('maintenance_task', 'device_maintenance')
|
-- AND COLUMN_NAME IN ('maintenance_location', 'maintenance_items');
|