如何使用SQLite筛选关联交易条目并批量更新account_guid?
批量更新复式记账账户GUID的实现方案
1. 提取目标交易的tx_guid
先查询所有包含亚马逊标识的交易,提取它们共享的tx_guid(去重避免重复处理):
SELECT DISTINCT tx_guid FROM 你的交易表名 WHERE memo LIKE '%AMAZON%';
2. 定位需要修正的条目
用上面拿到的tx_guid,筛选出对应的空memo交易,先确认目标范围是否正确:
SELECT * FROM 你的交易表名 WHERE tx_guid IN ( SELECT DISTINCT tx_guid FROM 你的交易表名 WHERE memo LIKE '%AMAZON%' ) AND memo IS NULL;
3. 执行批量更新
确认条目无误后,替换目标账户GUID为实际要设置的账户ID,执行更新:
UPDATE 你的交易表名 SET account_guid = '目标账户GUID' WHERE tx_guid IN ( SELECT DISTINCT tx_guid FROM 你的交易表名 WHERE memo LIKE '%AMAZON%' ) AND memo IS NULL;
关键提醒
- 操作前一定要备份数据,或者先运行SELECT语句验证目标条目,避免误改。
- 如果数据库支持事务,建议用事务包裹更新操作,出错可回滚:
BEGIN TRANSACTION; -- 执行UPDATE语句 -- 验证结果后提交 COMMIT; -- 出错则执行 ROLLBACK;
内容的提问来源于stack exchange,提问作者testname123
相关产品推荐
相关产品推荐

