sync: sql agent workspace updates

This commit is contained in:
2026-07-17 17:55:38 +08:00
parent a8c7a44c9f
commit 6182857554
19 changed files with 846 additions and 234 deletions
+66
View File
@@ -113,3 +113,69 @@ WHERE t1.ecid = 'hsjm';
### 当前状态
三个表(`dmp_im_stock_in``dmp_im_stock_out``dmp_im_stock_in_out_flow_detail`)在 `dmp_serp` 中均**无数据**ecid='hsjm'),需先导入数据后再执行更新。
## 工作空间初始化
重写所有配置文件为中文:
- **IDENTITY.md** — SQL Agent,职责:连接数据库、编写分析SQL、提供脚本
- **SOUL.md** — 直接有用、有判断力、先查再做
- **AGENTS.md** — 会话启动、记忆管理、红线、数据库操作规范
- **USER.md** — yangxuan、Asia/Shanghai、偏好中文/简洁/本地客户端
- **HEARTBEAT.md** — 删除(SQL Agent 不需要心跳任务)
- **.git** — 删除独立仓库,使用 `.openclaw` 公用 git
- **.env** — 删除重复文件,共用 `/home/yangxuan/.openclaw/.env`
## 技能安装
从 ClawHub 安装 **sql-toolkit@1.0.0**,覆盖查询设计、迁移优化、索引策略等最佳实践。
## 新建表
- **`dmp_om_productinfo`**(订单明细表)— 在本地 `dmp_serp` 创建,87个字段,InnoDB/utf8mb43个复合索引
## 跨库级联更新
### qc_task_inspect ← dmp_mc_purchase_arrival
关联条件:`arrival_doc_no = arrival_no`
```sql
UPDATE dmp_smes.qc_task_inspect t1
INNER JOIN dmp_serp.dmp_mc_purchase_arrival t2
ON t1.arrival_doc_no = t2.arrival_no
SET
t1.insp_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(t2.ship_date, '%Y-%m-%d'), ' ', DATE_FORMAT(t1.insp_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
),
t1.create_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(t2.ship_date, '%Y-%m-%d'), ' ', DATE_FORMAT(t1.create_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
),
t1.update_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(t2.ship_date, '%Y-%m-%d'), ' ', DATE_FORMAT(t1.update_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
)
WHERE t2.ship_date IS NOT NULL;
```
### dmp_me_work_operate_record_detail
根据报工日期 `report_date` 更新创建时间和更新时间:
```sql
UPDATE `dmp_me_work_operate_record_detail` t1
SET
t1.create_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(t1.report_date, '%Y-%m-%d'), ' ', DATE_FORMAT(t1.create_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
),
t1.update_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(t1.report_date, '%Y-%m-%d'), ' ', DATE_FORMAT(t1.update_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
)
WHERE t1.ecid = 'kangda'
AND t1.report_date IS NOT NULL;
```
## 数据导入经验
- INSERT 语句中的 `-- NULL` 注释会被 MySQL 当作行内注释吞掉后续值,导致列数不匹配
- 非必填字段可以跳过不插,只写有值的字段
- 长 INSERT 建议写入 `.sql` 文件后通过 `< file.sql` 导入