-- ============================================================================= -- 为 CRM 业务管线(线索/商机/项目)增加「对接人职位」字段 contact_position -- -- 说明: -- - 幂等:列已存在时自动跳过,不会报 Duplicate column 错误; -- - 只增加字段,不改动任何已有数据; -- - 若尚未建表,直接执行 yz_backend_crm_pipeline.sql 已包含该字段,无需本脚本。 -- ============================================================================= SET NAMES utf8mb4; -- 1. 线索 SET @has_col := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_clue' AND COLUMN_NAME = 'contact_position'); SET @sql := IF(@has_col = 0, 'ALTER TABLE `yz_backend_crm_clue` ADD COLUMN `contact_position` varchar(50) NOT NULL DEFAULT '''' COMMENT ''对接人职位'' AFTER `contact_person`', 'SELECT ''skip: yz_backend_crm_clue.contact_position 已存在'' AS note'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 2. 商机 SET @has_col := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_business' AND COLUMN_NAME = 'contact_position'); SET @sql := IF(@has_col = 0, 'ALTER TABLE `yz_backend_crm_business` ADD COLUMN `contact_position` varchar(50) NOT NULL DEFAULT '''' COMMENT ''对接人职位'' AFTER `contact_person`', 'SELECT ''skip: yz_backend_crm_business.contact_position 已存在'' AS note'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 3. 项目 SET @has_col := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_project' AND COLUMN_NAME = 'contact_position'); SET @sql := IF(@has_col = 0, 'ALTER TABLE `yz_backend_crm_project` ADD COLUMN `contact_position` varchar(50) NOT NULL DEFAULT '''' COMMENT ''对接人职位'' AFTER `contact_person`', 'SELECT ''skip: yz_backend_crm_project.contact_position 已存在'' AS note'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- 4. 核对:三张表的 contact_position 字段 SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME IN ('yz_backend_crm_clue', 'yz_backend_crm_business', 'yz_backend_crm_project') AND COLUMN_NAME = 'contact_position' ORDER BY TABLE_NAME;