INSERT, UPDATE, and DELETE
Write queries preserve column ownership and value-family constraints. An INSERT or UPDATE without assignments fails during compilation.
Single-row and multi-row INSERT
Multi-row compilation verifies identical columns and ordering before adding values to the shared parameter sequence.
Conflict handling
A conflict target can be one column or a tuple of up to four columns. do_nothing, bound-value updates, and excluded references remain structured. The MySQL dialect rejects this syntax.
UPDATE
UPDATE does not require a filter automatically. A full-table update must be explicit, and applications should add policy checks at their boundary.
Expression assignments and UPDATE FROM
set_expression requires an output type matching the destination column. The CTE, assignment, filter, and RETURNING share one parameter accumulator.
DELETE
DELETE also permits an omitted filter. Production interfaces should model full-table deletion as a separate controlled operation.