修改分区功能

This commit is contained in:
wuweihua
2026-09-15 16:55:11 +08:00
parent 7679a7d091
commit ccf85ebefc
17 changed files with 394 additions and 18 deletions
@@ -0,0 +1,28 @@
-- prc_quote: add dest_postcode only (zone resolved at runtime by postcode)
-- billing tables do NOT store zone_* columns
SET NAMES utf8mb4;
SET @db := DATABASE();
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_quote' AND COLUMN_NAME='dest_postcode');
SET @sql := IF(@has=0, 'ALTER TABLE prc_quote ADD COLUMN dest_postcode VARCHAR(20) DEFAULT NULL COMMENT ''dest postcode'' AFTER country_name', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_quote' AND COLUMN_NAME='zone_id');
SET @sql := IF(@has>0, 'ALTER TABLE prc_quote DROP COLUMN zone_id', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_quote' AND COLUMN_NAME='zone_code');
SET @sql := IF(@has>0, 'ALTER TABLE prc_quote DROP COLUMN zone_code', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_quote' AND COLUMN_NAME='zone_name');
SET @sql := IF(@has>0, 'ALTER TABLE prc_quote DROP COLUMN zone_name', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_order_bill' AND COLUMN_NAME='zone_id');
SET @sql := IF(@has>0, 'ALTER TABLE prc_order_bill DROP COLUMN zone_id', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_order_bill' AND COLUMN_NAME='zone_code');
SET @sql := IF(@has>0, 'ALTER TABLE prc_order_bill DROP COLUMN zone_code', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=@db AND TABLE_NAME='prc_order_bill' AND COLUMN_NAME='zone_name');
SET @sql := IF(@has>0, 'ALTER TABLE prc_order_bill DROP COLUMN zone_name', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;