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
