-- ---------------------------- -- prc_quote_fee:附加费按具体名称多行 -- 原 uk_quote_fee_type(quote_id, fee_type) 被外键 fk_quote_fee_quote 依赖, -- 必须先补 quote_id 索引再删旧唯一键 -- ---------------------------- SET NAMES utf8mb4; -- 1) 外键所需的 quote_id 索引(与旧唯一键分离) ALTER TABLE prc_quote_fee ADD INDEX idx_quote_fee_quote_id (quote_id); -- 2) 附加费配置ID ALTER TABLE prc_quote_fee ADD COLUMN sc_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '附加费配置ID,运费/挂号费为0' AFTER fee_name; -- 3) 新唯一:同一试算可有多条附加费 ALTER TABLE prc_quote_fee ADD UNIQUE KEY uk_quote_fee_item (quote_id, fee_type, sc_id); -- 4) 现可安全删掉旧唯一键 ALTER TABLE prc_quote_fee DROP INDEX uk_quote_fee_type; -- 5) 更新费用名称注释 ALTER TABLE prc_quote_fee MODIFY COLUMN fee_name VARCHAR(100) DEFAULT NULL COMMENT '费用名称(附加费取配置名称)';