拆分库存表为产品表和库存表.sql
3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
-- ============================================
-- 拆分库存表为产品表和库存表
-- ============================================
-- 说明:将 lq_inventory 表拆分为 lq_product(产品表)和 lq_inventory(库存表)
--
-- 注意:此脚本只创建新表,不迁移数据
-- ============================================
-- ============================================
-- 1. 创建产品表(lq_product)
-- ============================================
CREATE TABLE IF NOT EXISTS `lq_product` (
`F_Id` VARCHAR(50) NOT NULL COMMENT '产品ID',
`F_ProductName` VARCHAR(200) NULL COMMENT '产品名称',
`F_Price` DECIMAL(18,2) NULL DEFAULT 0 COMMENT '价格',
`F_ProductCategory` VARCHAR(50) NULL COMMENT '产品类别',
`F_DepartmentId` VARCHAR(50) NULL COMMENT '归属部门ID',
`F_StandardUnit` VARCHAR(20) NULL COMMENT '标准单位',
`F_OnShelfStatus` INT NULL DEFAULT 1 COMMENT '上架状态(1:上架 0:下架)',
`F_StatisticsCategory` VARCHAR(50) NULL COMMENT '统计分类',
`F_Warehouse` VARCHAR(100) NULL COMMENT '归属仓库',
`F_UnitConversion` VARCHAR(200) NULL COMMENT '单位换算',
`F_SupplierName` VARCHAR(200) NULL COMMENT '供应商名称',
`F_ContractSignDate` DATETIME NULL COMMENT '合同签订日期',
`F_ContractEndDate` DATETIME NULL COMMENT '合同结束日期',
`F_Remark` VARCHAR(1000) NULL COMMENT '备注',
`F_CreateUser` VARCHAR(50) NULL COMMENT '创建人ID',
`F_CreateTime` DATETIME NULL COMMENT '创建时间',
`F_UpdateUser` VARCHAR(50) NULL COMMENT '更新人ID',
`F_UpdateTime` DATETIME NULL COMMENT '更新时间',
PRIMARY KEY (`F_Id`),
INDEX `idx_product_category` (`F_ProductCategory`) COMMENT '产品类别索引',
INDEX `idx_department` (`F_DepartmentId`) COMMENT '部门索引',
INDEX `idx_onshelf_status` (`F_OnShelfStatus`) COMMENT '上架状态索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品表';
-- ============================================
-- 2. 修改库存表结构(lq_inventory)
-- ============================================
-- 注意:MySQL不支持 IF NOT EXISTS 语法,需要先检查字段是否存在
-- 如果字段已存在,执行对应的ALTER语句会报错,可以忽略
-- 2.1 添加产品ID字段
-- 如果字段已存在,会报错,可以忽略
ALTER TABLE `lq_inventory`
ADD COLUMN `F_ProductId` VARCHAR(50) NULL COMMENT '产品ID(关联产品表)' AFTER `F_Id`;
-- 2.2 添加新字段
-- 如果字段已存在,会报错,可以忽略
ALTER TABLE `lq_inventory`
ADD COLUMN `F_StockInTime` DATETIME NULL COMMENT '入库时间' AFTER `F_Quantity`;
ALTER TABLE `lq_inventory`
ADD COLUMN `F_ProductionDate` DATETIME NULL COMMENT '生产日期' AFTER `F_StockInTime`;
ALTER TABLE `lq_inventory`
ADD COLUMN `F_ShelfLife` INT NULL COMMENT '保质期(天数)' AFTER `F_ProductionDate`;
ALTER TABLE `lq_inventory`
ADD COLUMN `F_BatchNumber` VARCHAR(100) NULL COMMENT '批次号' AFTER `F_ShelfLife`;
-- 2.3 删除产品相关字段(可选,执行前请先备份数据)
-- 注意:如果字段不存在,会报错,可以忽略
-- ALTER TABLE `lq_inventory` DROP COLUMN `F_ProductName`;
-- ALTER TABLE `lq_inventory` DROP COLUMN `F_Price`;
-- ALTER TABLE `lq_inventory` DROP COLUMN `F_ProductCategory`;
-- ALTER TABLE `lq_inventory` DROP COLUMN `F_DepartmentId`;
-- ALTER TABLE `lq_inventory` DROP COLUMN `F_StandardUnit`;
-- 2.4 添加产品ID索引
-- 如果索引已存在,会报错,可以忽略
ALTER TABLE `lq_inventory`
ADD INDEX `idx_product_id` (`F_ProductId`) COMMENT '产品ID索引';
-- ============================================
-- 注意事项
-- ============================================
-- 1. 此脚本只创建新表,不迁移数据
-- 2. 如果需要删除旧字段,请先备份数据
-- 3. 建议在测试环境先验证
-- 4. 执行ALTER语句前,请确认表结构