Blame view

项目文档相关/sql/拆分库存表为产品表和库存表.sql 3.81 KB
d8035736   “wangming”   Refactor project ...
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语句前,请确认表结构