24 lines
1.1 KiB
SQL
24 lines
1.1 KiB
SQL
-- 清理「非交易系统下单」的交易记录(无开仓订单号的记录)
|
||
-- 本系统开仓会在成交后保存 entry_order_id;无该字段或为 0 的为同步补录/其它来源,可安全删除。
|
||
-- 执行前请先备份数据库或至少备份 trades 表。
|
||
-- 若表结构较旧、没有 entry_order_id 列,请先执行 add_order_ids.sql 或跳过本脚本。
|
||
|
||
-- 1) 查看将要删除的记录数(按账号)
|
||
SELECT account_id, status, COUNT(*) AS cnt
|
||
FROM trades
|
||
WHERE entry_order_id IS NULL OR entry_order_id = 0
|
||
GROUP BY account_id, status
|
||
ORDER BY account_id, status;
|
||
|
||
-- 2) 查看将要删除的总数
|
||
SELECT COUNT(*) AS will_delete FROM trades
|
||
WHERE entry_order_id IS NULL OR entry_order_id = 0;
|
||
|
||
-- 3) 确认无误后执行删除(建议先备份:mysqldump -u user -p db_name trades > trades_backup.sql)
|
||
-- DELETE FROM trades
|
||
-- WHERE entry_order_id IS NULL OR entry_order_id = 0;
|
||
|
||
-- 若只清理指定账号,可加上条件,例如:
|
||
-- DELETE FROM trades
|
||
-- WHERE (entry_order_id IS NULL OR entry_order_id = 0) AND account_id = 1;
|