Postgres, как создать новую таблицу, которая полностью соответствует другой таблице?

То есть, есть таблица городов - с данными, индексами, ограничениями.
Хочу создать новую таблицу полностью соответствующую таблице городов. Как это сделать?
Пытался сделать это таким образом:
CREATE TABLE new_city AS (SELECT * FROM city);
В новой таблице оказались только данные.
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
create table new_city (like city including all);
insert into new_city select * from city;


Если условия позволяют, то быстрее будет сдампить, переименовать и записать обратно.
pg_dump -t city -Fc -Z0 -f reimport.pgdump
alter table city rename to new_city;
pg_restore -f reimport.pgdump
Быстрее на индексах, которые лучше строятся после записи данных.

А чтобы сразу склонировать таблицу - такого вроде нет, очень узкий usecase
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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