PostgreSQL 기초강의, PostgreSQL 기초강좌
66강 SQL 초석 다지기 : PostgreSQL TEMPORARY TABLE
SQL 초석 다지기 66강 시작합니다.
이번 시간에는
▶ PostgreSQL TEMPORARY TABLE
에 대해서 알아보는 시간입니다.
요약: 이번 강의에서는 PostgreSQL temporary 테이블과 이 테이블을 효과적으로 관리하는 방법에 대해 배우게 됩니다.
Creating a PostgreSQL temporary table
임시 테이블(temporary table)은 이름에서 알 수 있듯이 데이터베이스 세션 동안 존재하는 짧은 기간의 테이블입니다. PostgreSQL 은 세션 또는 트랜잭션의 끝에 임시 테이블을 자동으로 삭제합니다.
임시 테이블을 만들려면 CREATE TEMPORY TABLE 문을 사용합니다.
CREATE TEMPORARY TABLE temp_table_name(
column_list
);
이 구문에서:
- 먼저 CREATE TEMPORY TABLE 키워드 뒤에 임시 테이블의 이름을 지정합니다.
- 둘째, CREATE TABLE 문에 있는 것과 동일한 열 목록을 지정합니다.
TEMP 및 TEMPORY 키워드는 동일하므로 서로 바꾸어 사용할 수 있습니다.
CREATE TEMP TABLE temp_table(
...
);
임시 테이블은 테이블을 작성하는 세션에만 표시됩니다. 다른 세션에는 보이지 않는다는 얘기입니다.
PostgreSQL temporary table examples
예를 들어 보겠습니다.
먼저 psql 프로그램을 사용하여 PostgreSQL 데이터베이스 서버에 로그인하고 test라는 새 데이터베이스를 생성합니다.
그런 다음, mytemp라는 임시 테이블을 만듭니다.
그런 다음 테스트 데이터베이스에 연결하는 다른 세션을 시작하고 mytemp 테이블에서 데이터를 쿼리 합니다.
다른 PSQL 창을 띄워서 쿼리 하면 에러가 납니다.
출력에서 분명히 알 수 있듯이 두 번째 세션은 mytemp 테이블을 볼 수 없습니다. 첫 번째 세션만 액세스 할 수 있습니다.
그런 다음 모든 세션을 종료합니다.
마지막으로 데이터베이스 서버에 다시 로그인하고 mytemp 테이블에서 데이터를 쿼리 합니다.
세션이 종료될 때 자동으로 삭제되었기 때문에 mytemp 테이블이 존재하지 않습니다. 따라서 PostgreSQL에서 오류가 발생했습니다.
PostgreSQL temporary table name
임시 테이블은 권장되지는 않지만 영구 테이블과 이름이 같을 수 있습니다.
영구 테이블과 동일한 이름을 공유하는 임시 테이블을 만들 때, 임시 테이블이 제거될 때까지 영구 테이블에 액세스 할 수 없습니다. 다음과 같은 예를 생각해 보십시오.
먼저 customers라는 이름의 테이블을 만듭니다.
CREATE TABLE customers(
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL
);
이전 실습 중 만들어진 customers 테이블이 있을 수 있습니다. 오류가 나면 다음을 진행하시면 됩니다.
둘째, 동일한 이름을 가진 임시 테이블 customers를 만듭니다.
CREATE TEMP TABLE customers(
customer_id INT
);
이제 고객 테이블에서 데이터를 쿼리 합니다.
이번에는 PostgreSQL가 영구 테이블 고객 대신 임시 테이블 고객에 액세스 했습니다.
PostgreSQL는 특수 스키마에 임시 테이블을 작성하므로 CREATE TEMP TABLE 문에서 스키마를 지정할 수 없습니다.
테스트 데이터베이스에 테이블을 나열하면 임시 테이블 고객만 볼 수 있고 영구 테이블 고객은 볼 수 없습니다.
출력은 고객 임시 테이블의 스키마가 pg_temp_3 임을 보여줍니다.
이 경우 영구 테이블에 액세스 하려면 정규화된 이름, 즉 테이블 앞에 스키마 접두사를 사용해야 합니다.
Removing a PostgreSQL temporary table
임시 테이블을 삭제하려면 DROP TABLE 문을 사용합니다. 다음 문은 DROP TABLE 문을 사용하여 임시 테이블을 삭제합니다.
DROP TABLE temp_table_name;
CREATE TABLE 문과 달리 DROP TABLE 문에는 임시 테이블용으로 작성된 TEMP 또는 TEMPORARY 키워드가 없습니다.
예를 들어, 다음 문은 위의 예에서 생성한 임시 테이블 고객을 삭제합니다.
DROP TABLE customers;
테스트 데이터베이스에 테이블을 다시 나열하면 영구 테이블 고객이 다음과 같이 나타납니다.
이번 강의에서는 CREATE TEMP TABLE 및 DROP TABLE 문을 사용하여 임시 테이블을 만들고 삭제하는 방법에 대해 배웠습니다.
수고하셨습니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
68강 SQL 초석 다지기 : PostgreSQL Primary Key constraint (96) | 2023.01.11 |
---|---|
67강 SQL 초석 다지기 : PostgreSQL TRUNCATE TABLE (67) | 2023.01.10 |
65강 SQL 초석 다지기 : PostgreSQL DROP TABLE (96) | 2023.01.08 |
64강 SQL 초석 다지기 : PostgreSQL RENAME COLUMN (123) | 2023.01.07 |
63강 SQL 초석 다지기 : PostgreSQL Change Column Type (93) | 2023.01.06 |
댓글