Search
Duplicate

PostgreSQL

FUNCTION

값을 반드시 반환한다
기능을 정의한 것
select 호출가능함
주로 클라이언트단에서 실행
기본형
CREATE FUNCTION function_name(param1 type, param2 type) RETURNS return_type AS BEGIN -- code END; LANGUAGE language_name;
SQL
복사

PROCEDURE

값을 필요에 따라 반환한다
서버에서 실행해 처리속도가 빠름
미리 컴파일 된 sql 명령 집합이다.
Version 12부터는 CREATE PROCEDURE가 가능
기본형
CREATE PROCEDURE deactivate_unpaid_accounts() LANGUAGE SQL AS $$ UPDATE accounts SET active = false WHERE balance < 0; $$;
SQL
복사

오류상황 처리

create query를 했을 때 아래와 같은 오류가 날 경우
ERROR: duplicate key value violates unique constraint "PK_cace4a159ff9f2512dd42373760" Detail: Key (id)=(0) already exists.
SQL
복사
아래 쿼리를 호출해서 해결 (user는 테이블 이름)
select setval( pg_get_serial_sequence('user', 'id'), (select max(id) from public.user) );
SQL
복사

참고자료