Dbeaver라는 db툴을 이용해 postgresql function을 만들 수 있다.
function을 만드는 이유는 긴 sql문을 간편하게 실행할 수 있는 장점이 있다.
CREATE OR REPLACE FUNCTION 함수명 ()
RETURNS integer
LANGUAGE plpgsql
AS $function$
declare
r record;
--> 1.함수명과 파라미트. 리턴값을 정의해준다.
BEGIN
for r in
select 컬럼명
from 테이블
loop
--> 2. for문을 돌릴 테이블을 정의한다.
INSERT INTO
VALUES
ON CONFLICT (충돌id)
DO UPDATE
SET
컬럼명 = r.컬럼명
end loop;
return 1;
--> 3. 원하는 sql문을 작성한다. 2번에서 선언한 for r을 이용해 반복문을 쿼리에 삽입하는게 가능하다.
END;
$function$;
;
--> 4. return값이 맞는지. 세미콜런이 맞는지 확인후 함수를 저장한다.
나는 함수가 저장되기전 새로고침 버튼을 한번 눌러서 function문이 날라간적이 있다....
'DB > postgresql' 카테고리의 다른 글
[POSTGRESQL] 시퀀스값 컬럼값 order by로 update하기. (0) | 2023.06.08 |
---|---|
[PostgreSQL] 배열 함수(array_agg, array_to_string) (0) | 2022.02.27 |
[PostgreSQL] EXITS 연산자 (0) | 2022.02.13 |
[POSTGRESQL] 계층형 쿼리, RECURSIVE (0) | 2022.01.22 |