示例(标准风格语法);请确认数据库支持对应关键字。
MERGE INTO inventory AS t USING incoming AS s ON (t.sku = s.sku) WHEN MATCHED THEN UPDATE SET quantity = s.quantity WHEN NOT MATCHED THEN INSERT (sku, quantity) VALUES (s.sku, s.quantity);根据匹配条件插入或更新数据;不同数据库语法存在差异。
MERGE INTO target USING source ON match_condition WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT ...;示例(标准风格语法);请确认数据库支持对应关键字。
MERGE INTO inventory AS t USING incoming AS s ON (t.sku = s.sku) WHEN MATCHED THEN UPDATE SET quantity = s.quantity WHEN NOT MATCHED THEN INSERT (sku, quantity) VALUES (s.sku, s.quantity);SQLite 风格示例;实际方言行为可能不同。
INSERT INTO inventory (sku, quantity) VALUES ('A-1', 12) ON CONFLICT (sku) DO UPDATE SET quantity = excluded.quantity;| 参数 / 子句 | 说明 |
|---|---|
Target table / columns | 指定语句影响的表和列。 |
VALUES / SET / source query | 提供插入值或赋予新值。 |
WHERE | 限制受影响的行;省略可能更改所有行。 |
RETURNING / OUTPUT | 在方言支持时返回已更改的行。 |
Transaction | 多项更改需整体成功或失败时使用事务。 |
执行前请核对命令和目标路径。修改文件、服务、账户、磁盘、权限或数据库的操作可能难以撤销;建议先在安全环境测试并保留备份。