172 похожих чатов

Добрый день всем Подскажите, пожалуйста, TRUNCATE это команда DDL или DML?

В доке не нашел.
Спасибо

7 ответов

13 просмотров

Помню уже было обсуждение это как-то раз давно. В памяти осталось лишь, что TRUNCATE - это как твоя бывшая. С ней всё сложно.

в случае Postgres я отношу TRUNCATE к DDL — из-за необходимости в AccessExclusiveLock.

По ISO SQL — DML. И это (даже несколько раз) написано в документации PostgreSQL, между прочим.

Виктор Егоров
в случае Postgres я отношу TRUNCATE к DDL — из-за ...

И относите неправильно, кстати. Команды относятся к DML или DDL на основании того, что они делают, а не на основании дефектов их реализации в конкретных СУБД. ;)

Artem-T. Автор вопроса
Yaroslav Schekin
По ISO SQL — DML. И это (даже несколько раз) напис...

Спасибо за ответ А не скинете ссылку на доку?

Artem T.
Спасибо за ответ А не скинете ссылку на доку?

ISO SQL:2016: 14 Data manipulation ... 14.10 <truncate table statement> > А не скинете ссылку на доку? Прямо в документации PostgreSQL это не написано, учтите (как и многое другое — видимо, подразумевается, что все прочитают это... в стандарте или где-то ещё). Зато упоминается там, где это имеет практическое значение. Пример 1 (из https://www.postgresql.org/docs/current/runtime-config-logging.html ): log_statement (enum) Controls which SQL statements are logged. Valid values are none (off), ddl, mod, and all (all statements). ddl logs all data definition statements, such as CREATE, ALTER, and DROP statements. mod logs all ddl statements, plus data-modifying statements such as INSERT, UPDATE, DELETE, TRUNCATE, and COPY FROM. Пример 2 (из https://www.postgresql.org/docs/current/plpgsql-trigger.html ), где на этом основано разделение видов триггеров: 43.10.1. Triggers on Data Changes 43.10.2. Triggers on Events Триггеры на TRUNCATE относятся к первому виду. И так далее (надоело искать). А вот ( https://www.postgresql.org/docs/current/mvcc-caveats.html ), например, ошибка в документации: Some DDL commands, currently only TRUNCATE and the table-rewriting forms of ALTER TABLE, are not MVCC-safe. Вот взяли бы Вы и написали bug report по этому поводу, кстати, раз уж я за Вас по-grep-ал документацию. ;)

Artem-T. Автор вопроса
Yaroslav Schekin
ISO SQL:2016: 14 Data manipulation ... 14.10 <trun...

Спасибо вам большое за ответ, очень много полезной информации) По поводу заведения бага, не разу не пробовал, но попробую (после отпуска 😁)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта