복붙노트

[SQL] SQL에서 임시 테이블 만들기

SQL

SQL에서 임시 테이블 만들기

나는 임시 테이블을 만들려고하고 그 특정 register_type에 대한 선택 데이터 만. 나는이 쿼리를 작성했지만 작동하지 않습니다

$ CREATE TABLE temp1
(Select 
    egauge.dataid,
    egauge.register_type,
    egauge.timestamp_localtime,
    egauge.read_value_avg
from rawdata.egauge
where register_type like '%gen%'
order by dataid, timestamp_localtime ) $

나는 PostgreSQL을 사용하고 있습니다. 당신은 쿼리에 어떤 문제가 있는지 말해 줄래?

해결법

  1. ==============================

    1.: 또한 임시 (TEMP) 테이블 작동 - 당신은 아마 TABLE AS를 생성합니다

    : 또한 임시 (TEMP) 테이블 작동 - 당신은 아마 TABLE AS를 생성합니다

    CREATE TEMP TABLE temp1 AS
    SELECT dataid
         , register_type
         , timestamp_localtime
         , read_value_avg
    FROM   rawdata.egauge
    WHERE  register_type LIKE '%gen%'
    ORDER  BY dataid, timestamp_localtime

    이 그것으로 임시 테이블 및 복사 데이터를 생성한다. 데이터의 정적 스냅 샷, 당신을 마음. 그냥 일반 테이블처럼,하지만 temp_buffers가 충분히 높은 설정되어있는 경우 RAM에 상주는, 그것의 끝에서 현재 세션 및 다이 내에서만 볼 수 있습니다. ON으로 DROP을 COMMIT 만들 때 트랜잭션의 끝에서 죽는다.

    임시 테이블은 같은 이름의 다른 보이는 테이블을 숨기고, 기본 스키마 검색 경로에 먼저하지 않는 한 스키마 규정 :

    완전히 다른 이야기를 - 동적를 원한다면, 당신은 CREATE VIEW를 찾고있을 것이다.

    표준 SQL 지원을 또한 정의하고, 또한 포스트 그레스 : SELECT INTO를. 그러나 그것의 사용은 실망입니다 :

    이 두 번째 구문 변형이 필요 정말 없으며, SELECT INTO는 SQL 구문이 결과적으로 수 없습니다 plpgsql에 할당하는 데 사용됩니다.

    관련 :

    단지 다른 테이블의 복사본 구조없이 데이터 TABLE LIKE (...)를 작성 :

    당신은 CTE에서 (후 폐기) 단지 하나의 쿼리의 목적으로 "파생 테이블을"은 "임시"테이블이 필요하거나 하위 쿼리는 상당히 적은 오버 헤드가 장착되어있는 경우 :

  2. ==============================

    2.http://www.postgresql.org/docs/9.2/static/sql-createtable.html

    http://www.postgresql.org/docs/9.2/static/sql-createtable.html

    CREATE TEMP TABLE temp1 LIKE ...
    
  3. from https://stackoverflow.com/questions/15691243/creating-temporary-tables-in-sql by cc-by-sa and MIT license