Здравствуйте, я хочу удалить все данные в моих таблицах postgresql, но не саму таблицу. Как я мог это сделать?
postgresql
vo1d
источник
источник
Ответы:
Используйте
TRUNCATE TABLE
команду.источник
Содержимое таблицы / таблиц в базе данных PostgreSQL можно удалить несколькими способами.
Удаление содержимого таблицы с помощью sql:
Удаление содержимого одной таблицы:
Удаление содержимого всех названных таблиц:
Удаление содержимого именованных таблиц и таблиц, которые ссылаются на них (я объясню это более подробно позже в этом ответе):
Удаление содержимого таблицы с помощью pgAdmin:
Удаление содержимого одной таблицы:
Удаление содержимого таблицы и таблиц, которые на нее ссылаются:
Разница между удалением и усечением:
Из документации:
Работа с таблицей, на которую ссылается другая таблица:
Если у вас есть база данных, в которой есть более одной таблицы, таблицы, вероятно, имеют взаимосвязь. В качестве примера можно привести три таблицы:
И некоторые подготовленные данные для этих таблиц:
Таблица заказов ссылается на таблицу клиентов, а таблица loyalty_cards ссылается на таблицу клиентов. Когда вы пытаетесь ОБРЕЗАТЬ / УДАЛИТЬ ИЗ таблицы, на которую ссылаются другие таблицы (другие таблицы имеют ограничение внешнего ключа для указанной таблицы), вы получаете сообщение об ошибке. Чтобы удалить контент из всех трех таблиц, вы должны назвать все эти таблицы (порядок не важен)
или просто таблица, на которую ссылается ключевое слово CASCADE (вы можете назвать больше таблиц, чем одну)
То же самое и с pgAdmin. Щелкните правой кнопкой мыши по таблице клиентов и выберите «Усечь каскадный».
источник
TRUNCATE
является частью ANSI SQL и поддерживается всеми СУБД. Я перешел по ссылке, и в документе ничего не упоминается о расширениях. Возможно, ссылка неверная или устарела?Для небольших таблиц
DELETE
часто быстрее и требует менее агрессивной блокировки (для большой одновременной нагрузки):Без
WHERE
условий.Для средних или больших столов используйте
TRUNCATE tbl
, например, @Greg posted.источник