본문 바로가기

개발

postgreSQL 에서 변수 선언하여 사용하는 방법 : Declare and use variable

728x90

Database 작업을 하다보면 변수를 선언하고 그 변수를 Query 에서 사용하는 방식을 많이 사용하게 된다.

 

DELETE FROM TABLE WEHRE = @MY_VAL

 

MYSQL, MSSQL 에서는 DECLARE 를 이용해서 변수 선언이 가능하다.

 

DECLARE @MY_VAL INT
SET @MY_VAL = 100

SELECT * FROM somewhere WHERE something = @MY_VAL

 

하지만, postgreSQL 에는 DECLARE 가 없가 없어서 아래와 같은 두 가지 방 법으로 변수를 선언하여 사용할수 있다.

 

1. with 문법을 이용하여 임시 테이블 생성

2. session 에 변수를 생성

 

 

두 방법 모두 변수를 지정하여 사용 할 수 있지만, 1번처럼 임시 테이블을 생성하는 것 보단 2번의 session 에 변수를 생성하는 방법을 추천한다.

 

  1. with 문법을 이용하여 임시 테이블을 생성하는 방법은 아래와 같이 임시 테이블을 만들어 변수를 지정하고, 이 테이블을 Join 하여 변수를 사용 하게 된다.
    WITH variables (VAR_1, VAR_2) as (
    values (5, 'foo')
    )
    
    
    SELECT * from somewhere, variables where something = VAR_1;​


  2. SET SESSION 으로 변수를 선언하고 currect_setting('변수명')::변수타입 과 같이 사용 한다.

    SET SESSION VAR_1 = '803'
    
    SELECT * from somewhere, variables where something = current_setting('VAR_1')::int;

postgreSQL 에서도 이렇게 쉽게 변수를 선언하고 사용 할 수 있다~~:)