81 lines
2.3 KiB
SQL
81 lines
2.3 KiB
SQL
-- 海外仓换标字段增量(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;
|