On Fri, Jan 16, 2026 at 10:13 AM Marcelo Fernandes <[email protected]> wrote:
> From the documentation:
> > TRUNCATE quickly removes all rows from a set of tables. It has the same
> > effect as an unqualified DELETE on each table, but since it does not 
> > actually
> > scan the tables it is faster.
> > (...)
> > You must have the TRUNCATE privilege on a table to truncate it.
>
> Granted that TRUNCATE and DELETE are different operations under the hood, but
> why would the TRUNCATE operation require its own specific privilege rather 
> than
> say, use the same privilege as the DELETE operation?

It's kinda obvious, when you read the notes.

1) Not MVCC-safe.
2) Do not fire TRIGGERs, thus breaking data-integrity
3) "Viral" in the presence of FKs, i.e. related tables must also be TRUNCATEd

Just these 3 are HUGE departures from a DELETE. --DD


Reply via email to