-- 偏远附加费按重量区间和邮编命中。已有库可重复执行。 SET NAMES utf8mb4; SET @sql = ( SELECT IF( COUNT(*) = 0, 'ALTER TABLE pay_surcharge ADD COLUMN weight_min decimal(12,3) DEFAULT NULL COMMENT ''适用重量下限KG,空表示不限'' AFTER calc_param', 'SELECT 1' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_surcharge' AND COLUMN_NAME = 'weight_min' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql = ( SELECT IF( COUNT(*) = 0, 'ALTER TABLE pay_surcharge ADD COLUMN weight_max decimal(12,3) DEFAULT NULL COMMENT ''适用重量上限KG,空表示不限'' AFTER weight_min', 'SELECT 1' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_surcharge' AND COLUMN_NAME = 'weight_max' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql = ( SELECT IF( COUNT(*) = 0, 'ALTER TABLE pay_surcharge ADD COLUMN postcode_param varchar(1000) DEFAULT NULL COMMENT ''偏远邮编规则,如07,35或IV,KA27-28'' AFTER weight_max', 'SELECT 1' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_surcharge' AND COLUMN_NAME = 'postcode_param' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;