73 lines
2.5 KiB
SQL
73 lines
2.5 KiB
SQL
-- =============================================================================
|
|
-- 历史数据刷新:预计细胞数量 单位「亿」→「千万」(数值 ×10)
|
|
-- =============================================================================
|
|
--
|
|
-- 适用:biz_cell_product.expected_cell_count 历史数据按「亿」录入的环境(仅执行一次)。
|
|
-- 执行后:库中数值与界面、API 均为「千万」(例:1000万细胞 → 存 1)。
|
|
--
|
|
-- 注意:
|
|
-- 1. 执行前请备份 biz_cell_product 表
|
|
-- 2. 请勿重复执行(重复 ×10 会导致数据错误)
|
|
-- 3. 若下方「迁移前检查」显示 column_comment 已含「单位:千万」,说明已迁移,跳过第 2 段
|
|
--
|
|
-- =============================================================================
|
|
-- 1. 迁移前检查(建议先单独执行本段)
|
|
-- =============================================================================
|
|
|
|
SELECT COLUMN_COMMENT AS current_unit_comment
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'biz_cell_product'
|
|
AND COLUMN_NAME = 'expected_cell_count';
|
|
|
|
SELECT COUNT(*) AS pending_rows
|
|
FROM `biz_cell_product`
|
|
WHERE `del_flag` = 0
|
|
AND `expected_cell_count` IS NOT NULL;
|
|
|
|
SELECT
|
|
`product_code`,
|
|
`expected_cell_count` AS value_before_yi,
|
|
`expected_cell_count` * 10 AS value_after_qianwan
|
|
FROM `biz_cell_product`
|
|
WHERE `del_flag` = 0
|
|
AND `expected_cell_count` IS NOT NULL
|
|
ORDER BY `update_time` DESC
|
|
LIMIT 10;
|
|
|
|
-- =============================================================================
|
|
-- 2. 正式迁移(确认检查无误后执行)
|
|
-- =============================================================================
|
|
|
|
START TRANSACTION;
|
|
|
|
UPDATE `biz_cell_product`
|
|
SET `expected_cell_count` = `expected_cell_count` * 10
|
|
WHERE `del_flag` = 0
|
|
AND `expected_cell_count` IS NOT NULL;
|
|
|
|
ALTER TABLE `biz_cell_product`
|
|
MODIFY COLUMN `expected_cell_count` DECIMAL(18,4) DEFAULT NULL
|
|
COMMENT '预计细胞数量(单位:千万)';
|
|
|
|
COMMIT;
|
|
|
|
-- =============================================================================
|
|
-- 3. 迁移后校验
|
|
-- =============================================================================
|
|
|
|
SELECT COLUMN_COMMENT AS unit_comment_after_migrate
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'biz_cell_product'
|
|
AND COLUMN_NAME = 'expected_cell_count';
|
|
|
|
SELECT
|
|
`product_code`,
|
|
`expected_cell_count`
|
|
FROM `biz_cell_product`
|
|
WHERE `del_flag` = 0
|
|
AND `expected_cell_count` IS NOT NULL
|
|
ORDER BY `update_time` DESC
|
|
LIMIT 10;
|