1.0.332.sql 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. -- 1.0.332.sql S0:EmployeeMaster 补齐旧系统字段——新增 城市/国家/业务电话 三列(幂等)。
  2. -- 背景:雇员编辑表单对齐旧系统雇员信息,AiDOP EmployeeMaster 缺 City/Country/BusinessPhone 三列,
  3. -- 其余字段(出生/入职/离职日期、婚姻、工作中心、卡号、默认工作地点)实体已有、本 DDL 不涉及。
  4. -- 仅新增可空列,不改既有列类型、不改 tenant_id 可空性、不插入/更新/删除任何业务数据。
  5. -- EmployeeMaster 为 CodeFirst 管理实体,本 DDL 与 EnableIncreTable 双保险(列存在即跳过,重启不冲突)。
  6. -- ============================================================================
  7. -- ========== City(城市) ==========
  8. SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS
  9. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'EmployeeMaster' AND COLUMN_NAME = 'City');
  10. SET @sql := IF(@has = 0, 'ALTER TABLE EmployeeMaster ADD COLUMN `City` varchar(100) NULL COMMENT ''城市''', 'DO 0');
  11. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
  12. -- ========== Country(国家) ==========
  13. SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS
  14. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'EmployeeMaster' AND COLUMN_NAME = 'Country');
  15. SET @sql := IF(@has = 0, 'ALTER TABLE EmployeeMaster ADD COLUMN `Country` varchar(100) NULL COMMENT ''国家''', 'DO 0');
  16. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
  17. -- ========== BusinessPhone(业务电话) ==========
  18. SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS
  19. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'EmployeeMaster' AND COLUMN_NAME = 'BusinessPhone');
  20. SET @sql := IF(@has = 0, 'ALTER TABLE EmployeeMaster ADD COLUMN `BusinessPhone` varchar(50) NULL COMMENT ''业务电话''', 'DO 0');
  21. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
  22. -- ========== 验证 ==========
  23. SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE
  24. FROM information_schema.COLUMNS
  25. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'EmployeeMaster'
  26. AND COLUMN_NAME IN ('City', 'Country', 'BusinessPhone')
  27. ORDER BY COLUMN_NAME;
  28. -- 期望:City/Country/BusinessPhone 三列均存在且可空。
  29. -- ============================================================================
  30. -- 回滚 SQL(如需):
  31. -- ALTER TABLE EmployeeMaster DROP COLUMN `City`, DROP COLUMN `Country`, DROP COLUMN `BusinessPhone`;
  32. -- ============================================================================