-- ============================================================ -- D-05 可选加固:customer.is_biz_negotiated 补默认值(单事务) -- 工单:customer-defectfix(e2e-report-v2 §五 D-05 / 任务书缺陷清单) -- 现象:导入含 INSERT 行 → 任务 FAILED「导入执行异常,请联系管理员」, -- 失败明细 0 行;根因 = customer.is_biz_negotiated 列 -- tinyint NOT NULL 且无默认值,CustomerImportExecutor.createCustomer() -- 未赋值 → INSERT 报 Field 'is_biz_negotiated' doesn't have a default value -- 应用层修复(本 effort 主修复,先于本脚本生效): -- createCustomer() 已补 setIsBizNegotiated(0) / setIsChild(0) -- 本脚本(可选加固,【待用户批准后手动执行,本 effort 不执行】): -- 给该列补 DEFAULT 0,兜底未来任何遗漏写入路径;不改已有数据 -- 风险评估:MODIFY 仅改默认值元数据(类型/NOT NULL 保持原样), -- InnoDB 即时元数据变更,不重建表、不锁行、毫秒级完成 -- 执行前核对(远程共享库 8.129.84.155,多人共用纪律): -- 1) SHOW COLUMNS FROM customer LIKE 'is_biz_negotiated'; -- —— 期望与探针基线一致:Type=tinyint(1), Null=NO, Default=NULL -- 2) SHOW CREATE TABLE customer; -- —— 若现场 COMMENT 与下方不一致,以现场原文替换后再执行 -- ============================================================ BEGIN; ALTER TABLE customer MODIFY COLUMN is_biz_negotiated tinyint NOT NULL DEFAULT 0 COMMENT '是否已商务洽谈(0否 1是;D-05 补默认值)'; COMMIT; -- ============================================================ -- D-05 同族补充发现(customer-defectfix heavy 复跑实锤): -- relation_star_level 亦为 NOT NULL 无默认,且导入模板 9 列无该列可填, -- 任何 INSERT 行必为 null 必炸(round-1 起导入 INSERT 从未真正成功, -- 先后被 is_biz_negotiated / relation_star_level 挡住)。 -- 应用层已补 setIsBizNegotiated(0) / setRelationStarLevel(0) 占位; -- 若走库端根治(二选一,待批准后手动执行),建议放开该列 NOT NULL: -- ============================================================ -- ALTER TABLE customer -- MODIFY COLUMN relation_star_level tinyint NULL -- COMMENT '关系星级 1~5(硬编码枚举非字典,D4-rev1);NULL=未评估(导入新建占位)'; -- 说明:手工新增/编辑仍走 validateCommon requireStar 强制 1~5,仅导入路径允许 NULL; -- 放开后 createCustomer 的 setRelationStarLevel(0) 占位可移除(留 0 不报错,仅语义弱)。 -- 回滚(如需还原 is_biz_negotiated 为无默认值): -- ALTER TABLE customer -- MODIFY COLUMN is_biz_negotiated tinyint NOT NULL -- COMMENT '是否已商务洽谈';