DELETE
DELETE removes specific rows from a table.
WarningDELETE is not currently supported. Opteryx rejects it at parse time with
Opteryx does not support 'DELETE' type queries.— there is no backend, experimental or otherwise, that accepts it.
Working Around It
Opteryx is built for read-heavy analytical workloads, not row-level mutation.
- To remove specific rows, rewrite the table with the rows excluded:
CREATE OR REPLACE TABLE workspace.collection.sessions AS
SELECT * FROM workspace.collection.sessions
WHERE expires_at >= CURRENT_TIMESTAMP; This replaces the whole table with the query's output — it is not a
partial, in-place delete, and requires a connector that supports
CREATE TABLE.
Because it reads and rewrites every row, this is not recommended for tables with millions of rows or more — the cost scales with the size of the whole table, not with how many rows are actually removed. For large tables, prefer partitioning the data so only the affected partitions need rewriting, or batch the rewrite during a low-traffic window.
To remove every row while keeping the table and its schema, use TRUNCATE TABLE.
To remove the table entirely, use DROP TABLE.
Notes
- See CREATE TABLE for the
OR REPLACEform used above.