47 lines
1.8 KiB
SQL
47 lines
1.8 KiB
SQL
-- 二期第三方单条箱规 + 单张图片绑定增量;可重复执行。
|
|
USE baiyue_firstleg;
|
|
|
|
DROP PROCEDURE IF EXISTS phase2_add_measurement_column;
|
|
DELIMITER $$
|
|
CREATE PROCEDURE phase2_add_measurement_column(
|
|
IN p_table VARCHAR(64), IN p_column VARCHAR(64), IN p_definition TEXT)
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = p_table AND COLUMN_NAME = p_column
|
|
) THEN
|
|
SET @ddl = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN `', p_column, '` ', p_definition);
|
|
PREPARE statement FROM @ddl;
|
|
EXECUTE statement;
|
|
DEALLOCATE PREPARE statement;
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|
|
|
|
CALL phase2_add_measurement_column(
|
|
'fl_inbound_measurement', 'external_request_hash',
|
|
'CHAR(64) NULL COMMENT ''第三方data原文和图片内容联合请求哈希'' AFTER external_event_no');
|
|
CALL phase2_add_measurement_column(
|
|
'fl_inbound_measurement_item', 'inbound_detail_id',
|
|
'BIGINT UNSIGNED NULL COMMENT ''绑定的订单货物明细ID,平台手工明细可为空'' AFTER measurement_id');
|
|
CALL phase2_add_measurement_column(
|
|
'fl_inbound_measurement_item', 'external_detail_no',
|
|
'VARCHAR(128) NULL COMMENT ''第三方测量明细唯一号,平台手工明细可为空'' AFTER inbound_detail_id');
|
|
|
|
DROP PROCEDURE IF EXISTS phase2_add_measurement_column;
|
|
|
|
SET @has_index = (
|
|
SELECT COUNT(*) FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'fl_inbound_measurement_item'
|
|
AND INDEX_NAME = 'uk_measure_external_detail'
|
|
);
|
|
SET @ddl = IF(
|
|
@has_index = 0,
|
|
'ALTER TABLE fl_inbound_measurement_item ADD UNIQUE KEY uk_measure_external_detail (tenant_id, inbound_detail_id, external_detail_no)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE statement FROM @ddl;
|
|
EXECUTE statement;
|
|
DEALLOCATE PREPARE statement;
|