MSSQL의 경우 프로시저를 실행할때
임시테이블을 만드는 것이 가능한 줄 알고 있는데요..
PostgreSQL 에서도 임시테이블을 생성할 수 있는지요?
동시에 두명이상이 프로시져를 실행할 수도 있기때문에..
각각 별도의 임시테이블이어야합니다.
select * into temp temptablename from ...
형태로 사용된다면,
임시 테이블이 만들어질 것이고,
이놈은 세션별로(커넥션별로) 유일합니다.
즉, 다른 커넥션이라면, 두 커넥션에서 동시에 같은 이름의 임시 테이블 이름이라 하더라도 다르게 처리됩니다.
정말 감사합니다.
그런데 그런식 말고 CREATE TEMP TABLE 과 같은식으로는 안되나요?
해보니까 만들어지기는 하는데..
DROP을 안했더니 다음번 실행시 이미 테이블이 존재한다고 나오는걸로봐서 이상한데..
흠.. select * into temp temptable from table 이 안되는군요..ㅜㅜ
parser: parse error at or near "TEMP"
ㅜㅜ
plpgsql 안에서는
select into 는 오직 한개의 row에 대해서만 사용할 수 있다고 하네요.
sql문의 select into 를 구현하려면,
create table as select 형태여야하네요.
이 문제라면,
create temp table temptable as select * from table
이런 식이여야겠군요.
이것이 트리거 안에서도 먹힐지는 모르겠습니다.
자세한 도움말은
http://database.sarang.net/?inc=read&aid=3845&criteria=pgsql&subcrit=tutorials&record_idx=10&currpg=2
문서를 참조하세요.
create temp table 로 만들었다면,
당연히 그 세션이 끝나면 자동으로 테이블은 지워질 것이며, 각 세션별로 유일한 테이블이 될겝니다.
각 세션별로 같은 이름이어도 상관 없겠지요.