-- 重量段、附加费记录所属价卡版本。已有库可重复执行。 SET NAMES utf8mb4; SET @band_sql = ( SELECT IF( COUNT(*) = 0, 'ALTER TABLE pay_weight_band ADD COLUMN version_no int(11) NOT NULL DEFAULT 1 COMMENT ''价卡版本,随产品版本变更'' AFTER product_id', 'SELECT 1' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_weight_band' AND COLUMN_NAME = 'version_no' ); PREPARE stmt FROM @band_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @fee_sql = ( SELECT IF( COUNT(*) = 0, 'ALTER TABLE pay_surcharge ADD COLUMN version_no int(11) NOT NULL DEFAULT 1 COMMENT ''价卡版本,随产品版本变更'' AFTER product_id', 'SELECT 1' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pay_surcharge' AND COLUMN_NAME = 'version_no' ); PREPARE stmt FROM @fee_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; UPDATE pay_weight_band b INNER JOIN pay_product p ON p.product_id = b.product_id SET b.version_no = IFNULL(p.version_no, 1); UPDATE pay_surcharge s INNER JOIN pay_product p ON p.product_id = s.product_id SET s.version_no = IFNULL(p.version_no, 1);