Is TRUNCATE a DML statement?
-
02-10-2019 - |
문제
Can we classify/say that TRUNCATE belongs to/falls under DML statement?
Check here for PostgreSQL TRUNCATE compatibility.
NOTE: TRUNCATE is part of SQL standard ANSI SQL 2008 - F200
해결책
PostgreSQL
I would say it's a DML statement in PostgreSQL: PostgreSQL has a TRUNCATE trigger but PostgreSQL doesn't have DDL triggers. So it can't be a DDL statement.
It acquires an ACCESS EXCLUSIVE lock on each table it operates on and it's not MVCC-safe but it's transactionsafe and you can do a rollback.
The ability to fire triggers for TRUNCATE is a PostgreSQL extension of the SQL standard.
다른 팁
As TRUNCATE manipulates data and does not change any definition, I clearly see it as a DML statement.
제휴하지 않습니다 StackOverflow