112 lines
3.7 KiB
Markdown
112 lines
3.7 KiB
Markdown
|
|
# 客户订单表创建说明
|
|||
|
|
|
|||
|
|
## 问题
|
|||
|
|
如果遇到错误:`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`;
|
|||
|
|
```
|
|||
|
|
然后重新执行创建脚本
|
|||
|
|
|