Files
yunzerwebsiteallinone/go/docs/sql/erp_inventory_schema.sql
2026-10-19 01:13:17 +08:00

290 lines
19 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================
-- 进销存(ERP)—— 交易层数据表
--
-- 对应模型:go/models/erp_inventory.go
--
-- 设计要点:
-- 1. 库存流水表 yz_backend_erp_stock_ledger 是核心:所有出入库动作
-- 审核生效时写入一条不可篡改的流水,由流水驱动库存结存
-- yz_backend_erp_stock(qty + 移动加权成本),不直接改库存数字。
-- 2. 单据统一建模:yz_backend_erp_document(主表)+ _item(明细),
-- doc_type 覆盖 采购订单/入库/退货、销售订单/出库/退货、
-- 其他出入库、调拨、盘点 十类单据,一套单据引擎驱动全部流转。
-- 单据特有字段:book_qty(盘点账面)、to_warehouse_id(调拨)、
-- ref_doc_id/ref_item_id(退货溯源、入库关联订单)。
-- 3. 业财一体:出库/入库单生效时生成往来账 yz_backend_erp_partner_bill
-- (应收/应付),收付款单 yz_backend_erp_fund_bill 通过
-- yz_backend_erp_fund_settle 按单核销。
-- 4. 状态机:0草稿 1审批中 2已生效 3已驳回 4已作废;
-- 仅「已生效」产生库存流水与往来账;草稿/驳回/审批中可作废。
--
-- 注意:不显式指定 COLLATE,沿用数据库默认排序规则,避免与既有表
-- (utf8mb4_0900_ai_ci)在 JOIN 比较字符串时报 Illegal mix of collations。
-- =============================================================
SET NAMES utf8mb4;
-- ---------------- 1. 商品分类(树形) ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_product_category` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`category_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '分类名称',
`parent_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父分类ID,0=根',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1启用 0停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL COMMENT '软删除',
PRIMARY KEY (`id`),
KEY `idx_tenant` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-商品分类';
-- ---------------- 2. 商品档案 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_product` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`product_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商品编号(租户内唯一)',
`product_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '商品名称',
`category_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '分类ID',
`brand` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '品牌',
`spec` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '规格',
`model` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '型号',
`base_unit` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '基本单位(库存计量单位)',
`aux_unit` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '辅助单位(如箱)',
`aux_ratio` DECIMAL(18,4) NOT NULL DEFAULT 1 COMMENT '换算系数:1辅助单位=aux_ratio基本单位',
`barcode` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '主条码',
`extra_barcodes` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '多条码 CSV',
`purchase_price` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '参考采购价',
`sale_price` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '零售价',
`wholesale_price` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '批发价',
`member_price` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '会员价',
`min_price` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '最低售价(开单低于此价拦截)',
`tax_rate` DECIMAL(9,4) NOT NULL DEFAULT 0 COMMENT '税率(%)',
`safety_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '安全库存下限(低于预警)',
`max_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '库存上限(高于积压预警,0=不限)',
`shelf_life_days` INT NOT NULL DEFAULT 0 COMMENT '保质期天数(0=不管效期)',
`enable_batch` TINYINT NOT NULL DEFAULT 0 COMMENT '是否批次管理:1是 0否',
`image_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '商品图片',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1启用 0停用',
`is_draft` TINYINT NOT NULL DEFAULT 0 COMMENT '1草稿 0正式',
`remark` VARCHAR(1000) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL COMMENT '软删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_code` (`tenant_id`,`product_code`),
KEY `idx_tenant_name` (`tenant_id`,`product_name`),
KEY `idx_barcode` (`barcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-商品档案';
-- ---------------- 3. 仓库 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_warehouse` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`warehouse_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '仓库编号',
`warehouse_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '仓库名称',
`address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '地址',
`manager` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '负责人',
`phone` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '联系电话',
`is_default` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认仓库:1是 0否',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1启用 0停用',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL COMMENT '软删除',
PRIMARY KEY (`id`),
KEY `idx_tenant` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-仓库档案';
-- ---------------- 4. 库存结存(由流水驱动) ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_stock` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`product_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID',
`warehouse_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '仓库ID',
`batch_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批次号,空=非批次库存',
`quantity` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '当前库存数量(基本单位)',
`cost_price` DECIMAL(18,6) NOT NULL DEFAULT 0 COMMENT '移动加权平均成本',
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_stock` (`tenant_id`,`product_id`,`warehouse_id`,`batch_no`),
KEY `idx_tenant_product` (`tenant_id`,`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-库存结存';
-- ---------------- 5. 库存流水(核心·只增不改不删) ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_stock_ledger` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`product_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID',
`warehouse_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '仓库ID',
`batch_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批次号',
`direction` TINYINT NOT NULL DEFAULT 1 COMMENT '方向:1入 -1出',
`quantity` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '变动数量(正数)',
`before_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '变动前结存',
`after_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '变动后结存',
`unit_cost` DECIMAL(18,6) NOT NULL DEFAULT 0 COMMENT '本次变动单位成本(入库=进价,出库=出库时加权成本)',
`total_cost` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '本次变动成本金额',
`doc_type` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '来源单据类型',
`doc_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源单据ID',
`doc_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '来源单据号',
`doc_item_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源单据明细ID',
`production_date` DATE DEFAULT NULL COMMENT '生产日期',
`expire_date` DATE DEFAULT NULL COMMENT '到期日期',
`operator_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '操作人ID',
`operator_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '操作人姓名',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_stock` (`tenant_id`,`product_id`,`warehouse_id`),
KEY `idx_doc` (`tenant_id`,`doc_type`,`doc_id`),
KEY `idx_create_time` (`tenant_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-库存流水(不可篡改)';
-- ---------------- 6. 单据主表(十类单据统一建模) ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_document` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`doc_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '单据号(前缀取基础设置)',
`doc_type` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '单据类型:purchase_order/purchase_in/purchase_return/sales_order/sales_out/sales_return/other_in/other_out/transfer/stock_take',
`biz_date` DATE NOT NULL COMMENT '业务日期',
`warehouse_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '主仓库(入库仓/出库仓/调出仓)',
`to_warehouse_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '调入仓库(仅调拨)',
`partner_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '往来单位类型:customer/supplier',
`partner_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '往来单位ID(客户表/供应商表)',
`partner_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '往来单位名称快照',
`source_doc_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源单据ID(入库单←采购订单,退货单←入库/出库单)',
`total_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '合计数量(基本单位)',
`total_amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '合计金额(折前)',
`discount_amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '整单优惠金额',
`actual_amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '合计金额(折后,往来账按此计)',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1审批中 2已生效 3已驳回 4已作废',
`instance_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '审批实例ID',
`auditor_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审核人ID',
`auditor_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '审核人姓名',
`audit_time` DATETIME DEFAULT NULL COMMENT '审核生效时间',
`remark` VARCHAR(1000) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人ID',
`create_user_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人姓名',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL COMMENT '软删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_docno` (`tenant_id`,`doc_no`),
KEY `idx_tenant_type_status` (`tenant_id`,`doc_type`,`status`),
KEY `idx_partner` (`tenant_id`,`partner_type`,`partner_id`),
KEY `idx_biz_date` (`tenant_id`,`biz_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-业务单据主表';
-- ---------------- 7. 单据明细 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_document_item` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`doc_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '主表ID',
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`product_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID',
`product_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '商品名称快照',
`spec` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '规格快照',
`unit` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '计量单位(基本单位)',
`warehouse_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '明细行仓库(盘点用;单据级默认可0)',
`batch_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '批次号',
`quantity` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '数量(基本单位)',
`book_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '账面数量(仅盘点)',
`executed_qty` DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '已执行数量(订单被入库/出库累计)',
`ref_item_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源明细行ID(入库行←订单行/退货行←原单行)',
`unit_price` DECIMAL(18,6) NOT NULL DEFAULT 0 COMMENT '单价(成本/进价/售价)',
`amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '行金额',
`production_date` DATE DEFAULT NULL COMMENT '生产日期',
`expire_date` DATE DEFAULT NULL COMMENT '到期日期',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`sort_order` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_doc` (`doc_id`),
KEY `idx_tenant_product` (`tenant_id`,`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-业务单据明细';
-- ---------------- 8. 往来账(应收/应付) ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_partner_bill` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`bill_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1应收 2应付',
`partner_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'customer/supplier',
`partner_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '往来单位ID',
`partner_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '往来单位名称快照',
`source_doc_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源单据ID',
`source_doc_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '来源单据号',
`bill_date` DATE NOT NULL COMMENT '账期开始日',
`due_date` DATE DEFAULT NULL COMMENT '到期日(账期)',
`amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '发生额(红字为负)',
`settled_amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '已核销额',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0未核销 1部分核销 2已核销',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_tenant_type` (`tenant_id`,`bill_type`,`status`),
KEY `idx_partner` (`tenant_id`,`partner_type`,`partner_id`),
KEY `idx_doc` (`tenant_id`,`source_doc_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-往来账(应收/应付)';
-- ---------------- 9. 收付款单 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_fund_bill` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`fund_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '收付款单号',
`fund_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1收款(冲应收) 2付款(冲应付) 3其他收入 4费用支出',
`partner_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'customer/supplier/空(其他收支)',
`partner_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '往来单位ID',
`partner_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '往来单位名称快照',
`amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '收付金额(正数)',
`settled_amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '已核销往来账金额(按单核销累计)',
`pay_method` VARCHAR(30) NOT NULL DEFAULT 'cash' COMMENT 'cash现金/bank银行/wechat微信/alipay支付宝/check支票/online在线',
`pay_account` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '收款账户备注',
`biz_date` DATE NOT NULL COMMENT '收付日期',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1已确认 4已作废',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(64) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL COMMENT '软删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_fundno` (`tenant_id`,`fund_no`),
KEY `idx_tenant_type` (`tenant_id`,`fund_type`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-收付款单';
-- ---------------- 10. 收付款核销明细 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_erp_fund_settle` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`fund_bill_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '收付款单ID',
`partner_bill_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '往来账ID',
`partner_bill_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '往来单据号快照',
`amount` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '本次核销额',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_fund` (`fund_bill_id`),
KEY `idx_bill` (`partner_bill_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ERP-收付款核销明细';
-- ---------------- 11. 客户/供应商信用字段(幂等增列) ----------------
-- MySQL 不支持 ADD COLUMN IF NOT EXISTS,用 INFORMATION_SCHEMA 判重 + PREPARE 动态执行。
SET @has_credit := (SELECT COUNT(*) FROM information_schema.columns
WHERE table_schema=DATABASE() AND table_name='yz_backend_erp_customer' AND column_name='credit_limit');
SET @sql := IF(@has_credit=0,
'ALTER TABLE `yz_backend_erp_customer` ADD COLUMN `credit_limit` DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT ''信用额度,0=不限'', ADD COLUMN `payment_days` INT NOT NULL DEFAULT 0 COMMENT ''账期天数''',
'SELECT ''yz_backend_erp_customer.credit_limit already exists''');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @has_spay := (SELECT COUNT(*) FROM information_schema.columns
WHERE table_schema=DATABASE() AND table_name='yz_backend_erp_supplier' AND column_name='payment_days');
SET @sql := IF(@has_spay=0,
'ALTER TABLE `yz_backend_erp_supplier` ADD COLUMN `payment_days` INT NOT NULL DEFAULT 0 COMMENT ''账期天数''',
'SELECT ''yz_backend_erp_supplier.payment_days already exists''');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- ---------------- 结果校验 ----------------
SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.tables
WHERE table_schema=DATABASE() AND TABLE_NAME LIKE 'yz_backend_erp_%' ORDER BY TABLE_NAME;