Files
yunzerwebsiteallinone/go/docs/sql/alter_project_contacts.sql
T
2026-09-15 10:44:31 +08:00

29 lines
2.2 KiB
SQL

-- =============================================================
-- Project contacts: pick contacts from the linked companies
-- (a project no longer shows ALL contacts of the customer)
-- Table: yz_backend_crm_project
-- 1) upstream_contact_ids : JSON array of contact IDs picked from
-- the customer's address book (upstream).
-- 2) downstream_contact_ids : JSON array of contact IDs picked from
-- the counterpart's address book
-- (downstream for type=2 / midstream for type=3).
-- Contact details always come from yz_backend_erp_contact in real time;
-- only the picked ID references are stored here. Empty array -> ''.
-- Run: mysql -h<host> -P<port> -u<user> -p <db> < alter_project_contacts.sql
-- (re-running only reports "Duplicate column name", which is safe)
-- NOTE: keep this file ASCII-only; piping through some shells mangles non-ASCII.
-- =============================================================
-- 可重复执行:列不存在时才执行 ALTER,已存在自动跳过(不再报 1060 Duplicate column)。
-- upstream_contact_ids
SET @tbl := (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_project');
SET @col := (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_project' AND COLUMN_NAME = 'upstream_contact_ids');
SET @ddl := IF(@tbl > 0 AND @col = 0, 'ALTER TABLE `yz_backend_crm_project` ADD COLUMN `upstream_contact_ids` TEXT NULL COMMENT ''picked contact IDs (JSON array) from customer address book'' AFTER `downstream_phone`', 'DO 0');
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- downstream_contact_ids
SET @col := (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yz_backend_crm_project' AND COLUMN_NAME = 'downstream_contact_ids');
SET @ddl := IF(@tbl > 0 AND @col = 0, 'ALTER TABLE `yz_backend_crm_project` ADD COLUMN `downstream_contact_ids` TEXT NULL COMMENT ''picked contact IDs (JSON array) from counterpart address book (downstream/midstream)'' AFTER `upstream_contact_ids`', 'DO 0');
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;