diff options
Diffstat (limited to 'query/delete.md')
| -rw-r--r-- | query/delete.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/query/delete.md b/query/delete.md new file mode 100644 index 0000000..db55292 --- /dev/null +++ b/query/delete.md @@ -0,0 +1,46 @@ +# Delete + +[back to query](README.md) /// [home](../README.md) + +Remove rows from a table. + +## Request + +```json +{ + "action": "delete", + "table": "items", + "filter": { + "column": "id", + "op": "=", + "value": 42 + } +} +``` + +## Fields + +| Field | Type | Required | Notes | +|----------|--------|----------|-------------------------| +| `action` | string | yes | must be `"delete"` | +| `table` | string | yes | target table | +| `where` | object | yes* | simple key value filter | +| `filter` | object | yes* | structured filter | + +*at least one of `where` or `filter` is required. no unfiltered deletes lol. + +## Response + +```json +{ + "success": true, + "rows_affected": 1 +} +``` + +## Behaviors + +- WHERE clause is **mandatory**. same as update, no blanket deletes allowed. jsonderulo doesnt want you nuking entire tables on accident +- ownership scoping should be applied based on your permission level +- limit should be applied and capped to your max +- you need write permission on the table (`rw`, `rwa`, `rwo`, `rwg`) |
