优化联络单号
This commit is contained in:
55
db/upgrade_scandata_split_columns.sql
Normal file
55
db/upgrade_scandata_split_columns.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
数据库升级脚本 - 分离联络单号和件号
|
||||
|
||||
执行日期: 2026-02-04
|
||||
目的: 将barcode字段拆分为ContactNumber和ItemNumber两个独立字段
|
||||
影响表: scandata
|
||||
*/
|
||||
|
||||
USE fullautowaterpressure;
|
||||
|
||||
-- 1. 添加新字段
|
||||
ALTER TABLE `scandata`
|
||||
ADD COLUMN `ContactNumber` VARCHAR(100) NULL COMMENT '联络单号' AFTER `barcode`,
|
||||
ADD COLUMN `ItemNumber` VARCHAR(100) NULL COMMENT '件号' AFTER `ContactNumber`;
|
||||
|
||||
-- 2. 迁移现有数据(如果barcode包含"-"分隔符)
|
||||
UPDATE `scandata`
|
||||
SET
|
||||
`ContactNumber` = SUBSTRING_INDEX(`barcode`, '-', 1),
|
||||
`ItemNumber` = SUBSTRING_INDEX(`barcode`, '-', -1)
|
||||
WHERE `barcode` IS NOT NULL AND `barcode` LIKE '%-%';
|
||||
|
||||
-- 3. 对于没有分隔符的数据,将整个barcode作为联络单号
|
||||
UPDATE `scandata`
|
||||
SET
|
||||
`ContactNumber` = `barcode`,
|
||||
`ItemNumber` = ''
|
||||
WHERE `barcode` IS NOT NULL AND `barcode` NOT LIKE '%-%';
|
||||
|
||||
-- 4. 添加索引以提高查询性能
|
||||
CREATE INDEX `idx_contact_number` ON `scandata`(`ContactNumber`);
|
||||
CREATE INDEX `idx_item_number` ON `scandata`(`ItemNumber`);
|
||||
|
||||
-- 5. 验证数据迁移
|
||||
SELECT
|
||||
COUNT(*) as total_records,
|
||||
COUNT(ContactNumber) as has_contact_number,
|
||||
COUNT(ItemNumber) as has_item_number
|
||||
FROM `scandata`;
|
||||
|
||||
-- 6. 显示迁移后的示例数据
|
||||
SELECT
|
||||
Id,
|
||||
barcode as '原条码',
|
||||
ContactNumber as '联络单号',
|
||||
ItemNumber as '件号',
|
||||
CreateTime
|
||||
FROM `scandata`
|
||||
ORDER BY Id DESC
|
||||
LIMIT 10;
|
||||
|
||||
-- 注意:
|
||||
-- 1. barcode字段保留用于兼容性,不删除
|
||||
-- 2. 新数据将同时填充barcode、ContactNumber和ItemNumber
|
||||
-- 3. 如果需要回滚,可以删除新增的两个字段
|
||||
Reference in New Issue
Block a user