Files
baiyue-firstleg/scripts/db/relabel-fields-only.sql
T

81 lines
2.3 KiB
SQL
Raw Normal View History

2026-09-08 17:58:42 +08:00
-- 海外仓换标字段增量(MySQL 8.0)
-- 目标数据库:baiyue_lastleg
-- 用途:为已有 ll_relabel_item 表补齐 FBA目的仓、箱唛/SKU/组合换标字段。
-- 说明:脚本可重复执行;不会修改或删除业务数据。
CREATE DATABASE IF NOT EXISTS baiyue_lastleg
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE baiyue_lastleg;
DROP PROCEDURE IF EXISTS _tmp_add_relabel_fields;
DELIMITER $$
CREATE PROCEDURE _tmp_add_relabel_fields()
BEGIN
IF NOT EXISTS (
SELECT 1
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name = 'll_relabel_item'
) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'll_relabel_item 不存在,请先初始化 baiyue_lastleg 基线表';
END IF;
IF NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'll_relabel_item'
AND column_name = 'destination_fba_warehouse_code'
) THEN
ALTER TABLE ll_relabel_item
ADD COLUMN destination_fba_warehouse_code VARCHAR(128) NULL
COMMENT 'FBA目的仓编码(与海外操作仓分离)';
END IF;
IF NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'll_relabel_item'
AND column_name = 'operation_type'
) THEN
ALTER TABLE ll_relabel_item
ADD COLUMN operation_type VARCHAR(32) NOT NULL DEFAULT 'CARTON_LABEL'
COMMENT '换标模式:箱唛、SKU或组合换标';
END IF;
IF NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'll_relabel_item'
AND column_name = 'sku_relabel_items_json'
) THEN
ALTER TABLE ll_relabel_item
ADD COLUMN sku_relabel_items_json JSON NULL
COMMENT '同箱SKU换标子明细快照(数量按件)';
END IF;
END$$
DELIMITER ;
CALL _tmp_add_relabel_fields();
DROP PROCEDURE IF EXISTS _tmp_add_relabel_fields;
SELECT
table_schema,
table_name,
column_name,
column_type,
is_nullable,
column_default,
ordinal_position,
column_comment
FROM information_schema.columns
WHERE table_schema = 'baiyue_lastleg'
AND table_name = 'll_relabel_item'
AND column_name IN ('destination_fba_warehouse_code', 'operation_type', 'sku_relabel_items_json')
ORDER BY ordinal_position;