云
5 小时以前 cd8b8294fb8e1439342e775f41300a8907cb132d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-- 生产报工/产出/入库幂等约束:避免接口重试或并发审批生成重复单据。
-- MySQL 唯一索引允许多条 NULL,因此不影响没有 feedback_id 的历史数据。
 
SET @has_feedback_unique := (
  SELECT COUNT(*) FROM information_schema.statistics
  WHERE table_schema = DATABASE()
    AND table_name = 'mes_wm_product_produce'
    AND index_name = 'uk_product_produce_feedback'
);
SET @feedback_sql := IF(
  @has_feedback_unique = 0,
  'ALTER TABLE `mes_wm_product_produce` ADD UNIQUE KEY `uk_product_produce_feedback` (`feedback_id`)',
  'SELECT 1'
);
PREPARE feedback_stmt FROM @feedback_sql;
EXECUTE feedback_stmt;
DEALLOCATE PREPARE feedback_stmt;
 
SET @has_receipt_code_unique := (
  SELECT COUNT(*) FROM information_schema.statistics
  WHERE table_schema = DATABASE()
    AND table_name = 'mes_wm_product_receipt'
    AND index_name = 'uk_product_receipt_code'
);
SET @receipt_sql := IF(
  @has_receipt_code_unique = 0,
  'ALTER TABLE `mes_wm_product_receipt` ADD UNIQUE KEY `uk_product_receipt_code` (`code`)',
  'SELECT 1'
);
PREPARE receipt_stmt FROM @receipt_sql;
EXECUTE receipt_stmt;
DEALLOCATE PREPARE receipt_stmt;