возможно ли удалить все строки из всех таблиц одной командой в postgres
Вы правы, ответ НЕТ
Вы можете определить каскадные внешние ключи, которые будут удалять все ссылочные строки, если удаляется «родительский». Но это атрибут внешнего ключа, вы ничего не можете указать с помощью инструкции DELETE
если нет - вау.
Что это должно означать?
Если подумать: чего вы пытаетесь достичь?
У меня есть подозрение, что вы пытаетесь «перезагрузить», например, тестовая база данных. В этом случае подход PostgreSQL будет выглядеть следующим образом:
- Создайте базу данных, которая содержит все, что вам нужно (таблицы, представления, индексы и т. Д.), В новой базе данных (например, my_template)
- Чтобы сбросить текущую тестовую базу данных, выполните
DROP DATABASE testdb
, а затем заново создайте тестовую базу данных, используя CREATE DATABASE testdb TEMPLATE my_template
Вновь созданная testdb будет иметь все таблицы, определенные в my_template. Это, вероятно, на много быстрее, чем удаление всех строк.