场景说明
该场景属于“查询与 DML 语法”,适用于 sql、mybatis、plsql。权威状态:可进入权威统计。
正向识别示例
以下均来自规则库中 should_hit=true 的合成公开示例,不是客户代码。
MERGE INTO t USING s ON (t.id = s.id) WHEN MATCHED THEN UPDATE SET t.qty = t.qty - s.qty DELETE WHERE t.qty <= 0
MERGE INTO stock USING d ON (stock.sku = d.sku) WHEN MATCHED THEN UPDATE SET cnt = d.cnt DELETE WHERE cnt = 0 WHEN NOT MATCHED THEN INSERT (sku, cnt) VALUES (d.sku, d.cnt)
21 个精确目标版本 / 模式
| 目标 | 支持度 | 证据等级 | 公开边界 | 深入核对 |
|---|---|---|---|---|
| 达梦 DM8 | partial | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| 人大金仓 KingbaseES V8 | partial | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| openGauss 5.0 A 模式 | partial | unverified | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| openGauss 6.0 A 模式 | none | version_observed | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| PostgreSQL 16 + orafce 4.16 | partial | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
| PostgreSQL 16 | partial | doc_based | 未登记额外公开说明,按来源与验证步骤复核。 | 改造点 |
展开 15 个 unknown / undeclared 结论
| GaussDB 505(ORA 模式) | unknown | unverified | 当前事实源不足,不推断兼容。 |
| GBase 8s | unknown | unverified | 当前事实源不足,不推断兼容。 |
| GoldenDB V6 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 瀚高 HGDB 4.5 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.2.5 MySQL 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.2.5 Oracle 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.3.5 MySQL 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| OceanBase 4.3.5 Oracle 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| openGauss 6.0 B 模式(Dolphin) | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 磐维 PanWeiDB 2.0 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 磐维 PanWeiDB 3.0 A 模式 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| PolarDB(Oracle 兼容)2.0 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| 神通数据库 7 | unknown | unverified | 当前事实源不足,不推断兼容。 |
| TDSQL Boundless | unknown | unverified | 当前事实源不足,不推断兼容。 |
| TiDB 8.5 | unknown | unverified | 当前事实源不足,不推断兼容。 |
改造与验证路径
推荐方向
db_side · 若目标无 UPDATE 后 DELETE,则在同一事务锁定候选目标,执行 UPDATE 并把本次 UPDATE 命中且按更新后值满足删除条件的稳定键集合写入暂存表,再仅按该键集合 DELETE;任何一步失败整体回滚
库侧
用目标保证的暂存键集合/RETURNING 按更新后值筛选,持有目标行锁并在同一事务串联 UPDATE→DELETE,保持 update trigger 后接 delete trigger · 风险 manual
应用侧
应用仅负责开启同一数据库事务并调用受控过程;不得在两次自动提交间传递键集合 · 风险 manual
验收步骤
覆盖更新前真/更新后真、未被本次 UPDATE 命中但条件为真、多源同键、并发改写、update/delete trigger 顺序、影响行数;在 UPDATE 后注入故障确认回滚且无误删