|
|
-- ============================================================
|
|
|
-- 05: 品牌字段映射增加启用/禁用开关
|
|
|
-- 执行目标库:cnc_business
|
|
|
-- 幂等:是(通过 IF NOT EXISTS 检查列是否已存在)
|
|
|
-- ============================================================
|
|
|
|
|
|
-- 1. 增加 is_enabled 列(默认启用)
|
|
|
SET @dbname = 'cnc_business';
|
|
|
SET @tablename = 'cnc_brand_field_mapping';
|
|
|
SET @columnname = 'is_enabled';
|
|
|
SET @preparedStatement = (SELECT IF(
|
|
|
(
|
|
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
|
WHERE TABLE_SCHEMA = @dbname
|
|
|
AND TABLE_NAME = @tablename
|
|
|
AND COLUMN_NAME = @columnname
|
|
|
) > 0,
|
|
|
'SELECT 1',
|
|
|
'ALTER TABLE cnc_brand_field_mapping ADD COLUMN is_enabled tinyint(1) NOT NULL DEFAULT 1 COMMENT ''是否启用:1=启用 0=禁用'' AFTER is_required'
|
|
|
));
|
|
|
PREPARE alterIfNotExists FROM @preparedStatement;
|
|
|
EXECUTE alterIfNotExists;
|
|
|
DEALLOCATE PREPARE alterIfNotExists;
|
|
|
|
|
|
-- 2. 根据采集示例数据,禁用未出现的字段映射
|
|
|
-- 采集示例中只出现了:_io_status, Tag5, Tag8, Tag9, Tag11, Tag22, Tag23
|
|
|
-- 未出现的先设为禁用,后续可通过后台开关启用
|
|
|
UPDATE cnc_brand_field_mapping SET is_enabled = 0
|
|
|
WHERE field_name IN ('Tag14','Tag17','Tag18','Tag19','Tag20','Tag21','Tag24','Tag25','Tag26')
|
|
|
AND is_enabled = 1;
|
|
|
|
|
|
-- 3. 验证结果
|
|
|
SELECT id, standard_field, field_name, is_required, is_enabled
|
|
|
FROM cnc_brand_field_mapping
|
|
|
ORDER BY id;
|