Лучший способ создать временную таблицу с одинаковыми столбцами и ввести в качестве постоянной таблицы

Мне нужно создать таблицу temp с одинаковыми столбцами и напечатать как постоянную таблицу. Каков наилучший способ сделать это? (Постоянная таблица имеет более 100 столбцов)

т

Обычно я создаю таблицу следующим образом.

DECLARE  #TT TABLE(              
  member_id INT,    
  reason varchar(1),    
  record_status varchar(1) ,    
  record_type varchar(1)    
 ) 

Но есть ли способ сделать это без упоминания имен и типов столбцов, но укажите имя другой таблицы с необходимыми столбцами?

Ответ 1

select top 0 *
into #mytemptable
from myrealtable

Ответ 2

Сортировка...

select top 0 * into #temptable from mytable

Примечание. Это создает пустую копию temp, но не создает первичный ключ

Ответ 3

Это ответ на конкретный MySQL, не уверенный, где еще он работает -

Вы можете создать пустую таблицу с одинаковыми определениями столбцов с помощью:

CREATE TEMPORARY TABLE temp_foo LIKE foo;

И вы можете создать заполненную копию существующей таблицы с помощью:

CREATE TEMPORARY TABLE temp_foo SELECT * FROM foo;

И следующие работы в postgres; к сожалению, разные РСУБД здесь не кажутся очень последовательными:

CREATE TEMPORARY TABLE temp_foo AS SELECT * FROM foo;

Ответ 4

Я понимаю, что этот вопрос очень старый, но для тех, кто ищет решение, специфичное для PostgreSQL, это:

CREATE TEMP TABLE tmp_table AS SELECT * FROM original_table LIMIT 0;

Обратите внимание: таблица temp будет помещена в схему типа pg_temp_3.

Это создаст временную таблицу, в которой будут все столбцы (без индексов) и без данных, однако в зависимости от ваших потребностей вы можете удалить первичный ключ:

ALTER TABLE pg_temp_3.tmp_table DROP COLUMN primary_key;

Если исходная таблица не содержит никаких данных в ней, вы можете оставить "LIMIT 0".

Ответ 5

select * into #temptable from tablename where 1<>1