PostgreSQL ์„ ๊ฝค ์˜ค๋ž˜ ์จ์™”์ง€๋งŒ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด ๋ณธ์ ์€ ์ฒ˜์Œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

PostgreSQL ์—์„œ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

CREATE [OR REPLACE] FUNCTION function_name ([parameter1 data_type [, parameter2 data_type, ...]]) 
[RETURNS return_type] 
[LANGUAGE language_name] 
AS $$ -- Function body goes here $$;

CREATE ๋Œ€์‹  CREATE OR REPLACE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ ๊ฐ™์€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋Œ€์ฒด๋œ๋‹ค.

Warning

CREATE OR REPLACE ์‚ฌ์šฉ ์‹œ ๊ธฐ์กด ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฎ์–ด์”Œ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

์ˆซ์ž 2๊ฐœ๋ฅผ ๋ฐ›์•„ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜

CREATE FUNCTION add(a integer, b integer) RETURNS integer
    LANGUAGE SQL
    IMMUTABLE
    RETURNS NULL ON NULL INPUT
    RETURN a + b;
CREATE OR REPLACE FUNCTION calculate_sum(a integer, b integer)  
   RETURNS integer  
AS  
$$  
BEGIN  
   RETURN a + b;  
END;  
$$ LANGUAGE plpgsql;

๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋Š” ๋Œ€๋ถ€๋ถ„ ์ด๋ฏธ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฌธ์ž์—ด์„ ๋ฐ›์•„ ์ œ์™ธ์‹œํ‚ค๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด๋“ค์„ ์ œ์™ธ์‹œํ‚ค๋Š” ํ•จ์ˆ˜

CREATE FUNCTION exclude_words(name text, excluded_words text[])  
RETURNS text  
AS $$  
DECLARE  
result text;  
word_to_exclude text;  
BEGIN  
result := name;  
  
FOREACH word_to_exclude IN ARRAY excluded_words  
LOOP  
result := regexp_replace(result, word_to_exclude, '', 'gi');  
END LOOP;  
  
RETURN result;  
END;  
$$ LANGUAGE plpgsql;

PostgreSQL - CREATE FUNCTION