07 · Tables A→ZH · Edit data over time
Update existing rows via merge
Update rows by primary key with merge_rows - send only the key and the changed fields.
To change existing rows, use merge_rows with
_operation: "UPDATE", keyed on the primary key. Send only the PK and the
fields you're changing - omitted columns keep their current values.
Update
{ "table": "eddytor.cfg_xxx.<uuid>_products",
"comment": "Q1 repricing",
"rows": [
{ "_operation": "UPDATE", "product_id": "P001", "price": 34.99 },
{ "_operation": "UPDATE", "product_id": "P002", "price": 12.50, "status": "active" }
]}eddytor merge table eddytor sales orders --file ./price-changes.csvHeads up
Send PK + changed fields only. Sending every column
wastes bandwidth and risks clobbering a concurrent change to a field you didn't
mean to touch. Always include
_operation on each row.Update by condition
merge_rows keys on the PK, so to update "all rows where …":
query_rowswith the filter to get the matching PKs.- Build UPDATE rows for those PKs.
merge_rowswith acomment.
Atomic & validated
The batch is atomic and fully validated - if any updated row breaks a constraint or domain, the whole batch is rejected. Then validate and check the history metrics.