You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/database/sqls/05-field-mapping-is-enabled...

36 lines
1.4 KiB
SQL

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- ============================================================
-- 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;