반응형
영구 테이블과 동일한 열 및 유형으로 임시 테이블을 만드는 가장 좋은 방법
영구 테이블과 동일한 열 및 유형으로 임시 테이블을 만들어야합니다. 이를 수행하는 가장 좋은 방법은 무엇입니까? (영구 테이블에는 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
반응형
'IT Share you' 카테고리의 다른 글
InnoDB는 600MB 파일, MyISAM을 몇 분 안에 가져 오는 데 1 시간 이상 걸립니다. (0) | 2020.12.10 |
---|---|
다른 네임 스페이스의 부분 클래스 (0) | 2020.12.10 |
해당 값을 기준으로 사전 키를 필터링하는 방법 (0) | 2020.12.10 |
HRESULT 예외 : 0x800A03EC 오류 (0) | 2020.12.10 |
Xcode Guard Malloc 및 장치 디버깅 : 'libgmalloc.dylib'이미지를 찾을 수 없음 (0) | 2020.12.10 |