# 客户订单表创建说明 ## 问题 如果遇到错误:`Table 'mtpay.customer_order' doesn't exist` 说明数据库中没有 `customer_order` 表,需要执行SQL脚本创建。 ## 解决方案 ### 方法1:使用MySQL客户端执行(推荐) 1. 连接到数据库: ```bash mysql -h rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com -P 3306 -u mtkj2025 -p mtpay ``` 2. 执行SQL脚本: ```sql source E:/MTKJPAY/mt-pay/database/customer_order_schema.sql ``` 或者直接复制SQL内容执行: ```sql CREATE TABLE `customer_order` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `order_no` VARCHAR(64) NOT NULL UNIQUE COMMENT '订单号(全局唯一)', `product_id` BIGINT NOT NULL COMMENT '商品ID', `product_name` VARCHAR(500) NOT NULL COMMENT '商品名称', `sku_id` BIGINT NOT NULL COMMENT 'SKU ID', `sku_name` VARCHAR(500) NOT NULL COMMENT 'SKU名称/描述', `quantity` INT NOT NULL COMMENT '购买数量', `unit_price` DECIMAL(10, 2) NOT NULL COMMENT '单价', `total_amount` DECIMAL(10, 2) NOT NULL COMMENT '订单总金额', `currency` VARCHAR(3) NOT NULL COMMENT '货币代码', `status` VARCHAR(20) NOT NULL DEFAULT 'PENDING' COMMENT '订单状态:PENDING-待支付,PAID-已支付,SHIPPED-已发货,COMPLETED-已完成,CANCELLED-已取消', -- 客户信息 `customer_name` VARCHAR(100) NOT NULL COMMENT '客户姓名', `customer_phone` VARCHAR(20) NOT NULL COMMENT '客户电话', `customer_email` VARCHAR(100) COMMENT '客户邮箱', -- 收货地址 `shipping_name` VARCHAR(100) NOT NULL COMMENT '收货人姓名', `shipping_phone` VARCHAR(20) NOT NULL COMMENT '收货人电话', `shipping_country` VARCHAR(50) NOT NULL COMMENT '收货国家', `shipping_state` VARCHAR(50) COMMENT '收货州/省', `shipping_city` VARCHAR(50) NOT NULL COMMENT '收货城市', `shipping_street` VARCHAR(200) NOT NULL COMMENT '收货街道地址', `shipping_postcode` VARCHAR(20) COMMENT '收货邮编', -- 支付信息 `payment_order_id` BIGINT COMMENT '关联的支付订单ID', `payment_status` VARCHAR(20) DEFAULT 'UNPAID' COMMENT '支付状态:UNPAID-未支付,PAID-已支付,FAILED-支付失败', -- 备注 `remark` VARCHAR(500) COMMENT '订单备注', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_order_no` (`order_no`), KEY `idx_product_id` (`product_id`), KEY `idx_status` (`status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户订单表'; ``` ### 方法2:使用数据库管理工具 使用Navicat、DBeaver、MySQL Workbench等工具: 1. 连接到数据库 `mtpay` 2. 打开SQL编辑器 3. 复制 `customer_order_schema.sql` 文件内容 4. 执行SQL脚本 ### 方法3:使用命令行(Windows PowerShell) ```powershell # 读取SQL文件内容 $sql = Get-Content "E:\MTKJPAY\mt-pay\database\customer_order_schema.sql" -Raw # 执行SQL(需要先安装mysql客户端) mysql -h rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com -P 3306 -u mtkj2025 -p mtpay -e $sql ``` ## 验证 执行完成后,可以验证表是否创建成功: ```sql -- 查看表是否存在 SHOW TABLES LIKE 'customer_order'; -- 查看表结构 DESC customer_order; -- 或者 SHOW CREATE TABLE customer_order; ``` ## 注意事项 1. 确保数据库连接信息正确 2. 确保有创建表的权限 3. 如果表已存在,可以先删除再创建: ```sql DROP TABLE IF EXISTS `customer_order`; ``` 然后重新执行创建脚本