Этот ответ основан на том факте, что в определении таблицы есть ссылки на внешние ключи, которые несовместимы с процессом переименования и удаления таблиц.
Учитывая эту ситуацию, я бы рекомендовал вам загрузитьданные следующие:
- Начало транзакции
DELETE *
из таблицы - Загрузка данных с помощью
INSERT INTO
- Завершение транзакции
Это означает, что вы полностью перезагружаете содержимое таблицы.Заключение в транзакцию означает, что нет периода, когда таблица будет выглядеть «пустой».
Однако это оставляет таблицу в некотором беспорядочном состоянии, требуя VACUUM
для удаления старых данных..
В качестве альтернативы вы можете:
TRUNCATE
таблица - Загрузить данные с помощью
INSERT INTO
TRUNCATE
не требует очистки, поскольку очищает все данные, связанные с таблицей (а не просто помечает ее для удаления).Однако TRUNCATE немедленно фиксирует транзакцию, поэтому будет пробел, когда таблица будет пустой.