Является ли TRUNCATE оператором DML? - PullRequest
3 голосов
/ 30 августа 2010

Можем ли мы классифицировать / сказать, что TRUNCATE принадлежит / подпадает под оператор DML?

Проверьте здесь для совместимости PostgreSQL TRUNCATE.

ПРИМЕЧАНИЕ. TRUNCATE является частью стандарта SQL ANSI SQL 2008 - F200

Ответы [ 2 ]

3 голосов
/ 30 августа 2010

Поскольку TRUNCATE манипулирует данными и не меняет никакого определения , я ясно вижу его как оператор DML.

3 голосов
/ 30 августа 2010

PostgreSQL

Я бы сказал, что в PostgreSQL это оператор DML: PostgreSQL имеет триггер TRUNCATE , но PostgreSQL не имеет триггеров DDL.Таким образом, это не может быть оператор DDL.

Он получает блокировку ACCESS EXCLUSIVE для каждой таблицы, с которой работает, и не является безопасным для MVCC, но безопасен для транзакций и позволяет выполнить откат.

Возможность запуска триггеров для TRUNCATE является расширением PostgreSQL стандарта SQL.

...