1.0.359.sql 2.5 KB

123456789101112131415161718192021222324252627282930313233
  1. -- ============================================================================
  2. -- S7 FQC 成品检验全链路 · 阶段 1B · 检规"录入类型"识别字段(语义纠偏后)
  3. --
  4. -- 【语义纠偏】NonNumericalTypeOK/NG 不是检规规则字段,而是"某一次检验中非数值项目的
  5. -- 实际合格数量/不合格数量",属检验单明细 qms_qcpp_inspbillst,绝不放检规模板 qms_ccjygfzb。
  6. -- → 撤销前一版误加在 qms_ccjygfzb 的 NonNumericalTypeOK/NG(实测两列全 NULL、无业务数据、仅本任务代码消费,安全 DROP)。
  7. --
  8. -- 检规模板真正缺的是"数值型/非数值型"识别依据(情况 C:现有无类型字段 + Upper/Lower 100% 空不能推导)。
  9. -- → 新增 lrlx(录入类型):NUMERIC 数值型(维护上下限, 检验录 j1..j50) / NON_NUMERIC 非数值型(检验只录合格/不合格数)。
  10. --
  11. -- 目标表 qms_qcpp_inspbillst.NonNumericalTypeOK/NG(BIGINT) 保留不动 = 检验单本次实际合格/不合格数量。
  12. -- 幂等:IF-EXISTS/IF-NOT-EXISTS 守卫,可重复执行。不改任何历史数据、不改 jsyq/Upper/Lower 原值。
  13. -- 占位名:提交那刻 rename 为正式 1.0.<next>.sql 并登记 csproj Copy。
  14. -- ============================================================================
  15. -- ① 撤销误加的检规结果数量字段(属检验单,不属检规模板)
  16. SET @exist := (SELECT COUNT(1) FROM information_schema.columns
  17. WHERE table_schema=DATABASE() AND table_name='qms_ccjygfzb' AND COLUMN_NAME='NonNumericalTypeOK');
  18. SET @sql := IF(@exist=1, 'ALTER TABLE qms_ccjygfzb DROP COLUMN NonNumericalTypeOK', 'SELECT 1');
  19. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
  20. SET @exist := (SELECT COUNT(1) FROM information_schema.columns
  21. WHERE table_schema=DATABASE() AND table_name='qms_ccjygfzb' AND COLUMN_NAME='NonNumericalTypeNG');
  22. SET @sql := IF(@exist=1, 'ALTER TABLE qms_ccjygfzb DROP COLUMN NonNumericalTypeNG', 'SELECT 1');
  23. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
  24. -- ② 新增录入类型识别字段(情况 C:无现成类型字段,需显式标注数值/非数值)
  25. SET @exist := (SELECT COUNT(1) FROM information_schema.columns
  26. WHERE table_schema=DATABASE() AND table_name='qms_ccjygfzb' AND COLUMN_NAME='lrlx');
  27. SET @sql := IF(@exist=0,
  28. "ALTER TABLE qms_ccjygfzb ADD COLUMN lrlx VARCHAR(20) NULL COMMENT '录入类型:NUMERIC数值型/NON_NUMERIC非数值型(NULL=未设置)'",
  29. 'SELECT 1');
  30. PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;