-- ============================================================ -- 1.0.176.sql -- S0-WAREHOUSE-SCOPE-ZERO-DATA-GOVERNANCE-1 -- -- 业务目标:在「单甲方私有云、单套业务数据」口径下,把 S0 仓储 12 张主数据表 -- 的 company_ref_id / factory_ref_id 中的 NULL / 0 / 历史值 1 统一回填为全局默认组织: -- 默认公司 company_ref_id = 1329900200001(S0示范公司) -- 默认工厂 factory_ref_id = 1329900200002(一工厂) -- -- 口径与边界(用户拍板): -- - 本批次不启用多租户隔离判断;不使用 tenant_id 作为回填守卫;不修改 tenant_id。 -- - 仅回填 NULL / 0 / 1 这三类「缺失或历史残留」值;不覆盖已有有效非 0/非 1 值。 -- - 不创建 / 不修改 SysOrg;不创建 AIDOP 默认工厂(已另拍板放弃)。 -- - 不 INSERT / DELETE / ALTER / TRUNCATE,仅 UPDATE 上述两列。 -- -- 幂等性:WHERE 仅命中 NULL/0/1;执行一次后这些行变为有效默认值(非 0/非 1), -- 再次执行命中 0 行。安全可重复执行。 -- -- 回滚 SQL(不可无损自动回滚): -- 本脚本执行前未逐行备份原 company_ref_id / factory_ref_id 原值(原值多为 0/1/NULL, -- 回填后无法区分「原本就是默认公司」与「由 0/1/NULL 回填而来」。 -- 如需回滚,必须依赖外部数据库备份或审计日志,不能由本脚本自动逆向。 -- 粗回滚示意(会误伤本就等于默认值的真实行,故默认不执行;务必优先用备份恢复): -- -- UPDATE DepartmentMaster SET company_ref_id = 0 WHERE company_ref_id = 1329900200001; -- -- UPDATE DepartmentMaster SET factory_ref_id = 0 WHERE factory_ref_id = 1329900200002; -- -- (其余 11 表同理;强烈不建议,请优先用备份恢复) -- ============================================================ -- 1) DepartmentMaster UPDATE `DepartmentMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `DepartmentMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 2) EmployeeMaster UPDATE `EmployeeMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `EmployeeMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 3) CostCtrMaster UPDATE `CostCtrMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `CostCtrMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 4) LocationMaster UPDATE `LocationMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `LocationMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 5) LocationShelfMaster UPDATE `LocationShelfMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `LocationShelfMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 6) BarCodeNbr UPDATE `BarCodeNbr` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `BarCodeNbr` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 7) BarCodeType UPDATE `BarCodeType` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `BarCodeType` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 8) NbrTypeMaster UPDATE `NbrTypeMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `NbrTypeMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 9) NbrControl UPDATE `NbrControl` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `NbrControl` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 10) ItemPackMaster UPDATE `ItemPackMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `ItemPackMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 11) EmpWorkDutyMaster UPDATE `EmpWorkDutyMaster` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `EmpWorkDutyMaster` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1); -- 12) wms_rwzp(当前空表,影响 0 行,保留语句以保持 12 表清单完整) UPDATE `wms_rwzp` SET `company_ref_id` = 1329900200001 WHERE `company_ref_id` IS NULL OR `company_ref_id` IN (0, 1); UPDATE `wms_rwzp` SET `factory_ref_id` = 1329900200002 WHERE `factory_ref_id` IS NULL OR `factory_ref_id` IN (0, 1);