IT Share you

영구 테이블과 동일한 열 및 유형으로 임시 테이블을 만드는 가장 좋은 방법

shareyou 2020. 12. 10. 21:31
반응형

영구 테이블과 동일한 열 및 유형으로 임시 테이블을 만드는 가장 좋은 방법


영구 테이블과 동일한 열 및 유형으로 임시 테이블을 만들어야합니다. 이를 수행하는 가장 좋은 방법은 무엇입니까? (영구 테이블에는 100 개 이상의 열이 있습니다.)

보통 이런 테이블을 만듭니다.

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

그러나 열 이름과 유형을 언급하지 않고 필요한 열이있는 다른 테이블의 이름을 언급하는 방법이 있습니까?


select top 0 *
into #mytemptable
from myrealtable

이 질문이 매우 오래되었다는 것을 알고 있지만 PostgreSQL에 특정한 솔루션을 찾는 사람에게는 다음과 같습니다.

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

임시 테이블은 pg_temp_3과 같은 스키마에 저장됩니다.

이렇게하면 모든 열 (인덱스 없음)이 있고 데이터가없는 임시 테이블이 생성되지만 필요에 따라 기본 키를 삭제할 수 있습니다.

ALTER TABLE pg_temp_3.tmp_table DROP COLUMN primary_key;

원래 테이블에 처음 시작할 데이터가없는 경우 "LIMIT 0"을 생략 할 수 있습니다.


소소한 것 ...

select top 0 * into #temptable from mytable

참고 : 이것은 temp의 빈 복사본을 생성하지만 기본 키는 생성하지 않습니다.


이것은 다른 곳에서 작동하는지 확실하지 않은 MySQL 관련 답변입니다.

다음을 사용하여 동일한 열 정의를 가진 빈 테이블을 만들 수 있습니다.

CREATE TEMPORARY TABLE temp_foo LIKE foo;

다음을 사용하여 기존 테이블의 채워진 복사본을 만들 수 있습니다.

CREATE TEMPORARY TABLE temp_foo SELECT * FROM foo;

그리고 다음은 postgres에서 작동합니다. 불행히도 다른 RDBMS는 여기에서 매우 일관 적이 지 않은 것 같습니다.

CREATE TEMPORARY TABLE temp_foo AS SELECT * FROM foo;

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

참고 URL : https://stackoverflow.com/questions/9206433/best-way-to-create-a-temp-table-with-same-columns-and-type-as-a-permanent-table

반응형