CREATE [ OR REPLACE ] FUNCTION name ( [ argtype [, ...] ] )
RETURNS rettype
{ LANGUAGE langname
| IMMUTABLE | STABLE | VOLATILE
| CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
| [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER
| AS 'definition'
| AS 'obj_file', 'link_symbol'
} ...
[ WITH ( attribute [, ...] ) ]CREATE FUNCTION �Ͽ������ؿ���������ޤ��� CREATE OR REPLACE FUNCTION �ϡ��������ؿ��κ������ޤ��ϡ���¸������ִ��Τɤ��餫��Ԥʤ��ޤ���
��������̾���ޤޤ�Ƥ����硢�ؿ��ϻ��ꤵ�줿�������ޤǺ�������ޤ��� ��������̾���ʤ���С��ؿ��ϸ��ߤΥ������ޤǺ�������ޤ��� �������ؿ���̾���ˤϡ�Ʊ�������������Ʊ�������ǡ���������Ĵ�¸�δؿ���Ʊ��̾���ϻ��ѤǤ��ޤ��� ���������ۤʤ�����ǡ���������Ĵؿ��Ǥ���С�Ʊ��̾���Ǥ���ޤ��� (����������С������� �ȸ����ޤ�)��
��¸�δؿ����������ˤϡ�CREATE OR REPLACE FUNCTION ����Ѥ��ޤ��� ������ˡ�Ǥϴؿ���̾��������η����ѹ����뤳�ȤϤǤ��ʤ����Ȥ����դ��Ʋ������� (�����Ԥʤä���硢�������̤δؿ����������������Ǥ���) �ޤ���CREATE OR REPLACE FUNCTION �Ǥϡ���¸�ؿ�������ͤη����ѹ������뤳�ȤϤǤ��ޤ��� ���Τ���ˤϡ����δؿ������������ٺ������Ʋ�������
�ؿ��������ƺ���������硢�������ؿ��ϸŤ���Τ�Ʊ�����ΤˤϤʤ�ޤ��� �Ť��ؿ��Ȥ��롢��¸�Υ롼�롢�ӥ塼���ȥꥬ�ʤɤϲ���Ƥ��ޤ��ޤ��� �ؿ��Ȥ��륪�֥������Ȥ��˲����ʤ��褦�ˡ��ؿ�������ѹ�����ˤ� CREATE OR REPLACE FUNCTION ����Ѥ��ޤ���
�ؿ�����������桼���������δؿ��ν�ͭ�ԤȤʤ�ޤ���
��������ؿ���̾���Ǥ���
�⤷����С��ؿ��ΰ����Υǡ������Ǥ���(����������̾��ġ�) �����η��ϡ����ܡ�ʣ�硢�ɥᥤ�⤷���ϴ�¸����η��Υ��ԡ�����Ѥ��뤳�Ȥ��Ǥ��ޤ���
��η��Ȥ���ˤϡ�tablename.columnname%TYPE �ȵ��Ҥ��ޤ��� �������Ѥ��ơ��ơ��֥�������ѹ�����Ƥ�ؿ����ƶ�������ʤ��褦�ˤ��뤳�Ȥ��Ǥ��ޤ���
�ޤ�������μ����˰�¸���ޤ�����cstring �Ȥ��ä� "������" ����ꤹ�뤳�Ȥ�Ǥ����礬����ޤ��� �������ϡ��ºݤΰ����η����Դ����˻��ꤵ��Ƥ��롢�⤷���ϡ����̤�SQL�ǡ������ν����ۤ��Ƥ��뤳�Ȥ��ޤ���
�֤����ǡ������Ǥ���(����������̾��ġ�) �֤����ǡ������ϡ����ܷ���ʣ�緿���ɥᥤ�Τ����줫���⤷���ϡ���¸����η��Υ��ԡ������ꤹ�뤳�Ȥ��Ǥ��ޤ��� ��¸����η��Ȥ�����ˡ�ˤĤ��Ƥϡ����argtype�������Ȥ��Ƥ���������
�ޤ����������Ƥ������ˤ��ޤ�����cstring �Τ褦��"������" ����ꤹ�뤳�Ȥ���ǽ�Ǥ��� SETOF �����Ҥϡ����δؿ�����1 �ĤΥ����ƥ�ǤϤʤ������ƥ�ν�����֤����Ȥ��ޤ���
�ؿ���������Ƥ�������̾���Ǥ��� ���Υѥ����ˤϡ�SQL��C��internal���⤷���ϥ桼�������³�������̾��������ǽ�Ǥ��� (createlang �⻲�Ȥ��Ƥ���������) �����ߴ��Τ��ᡢ����̾����ñ�������dz�뤳�Ȥ�Ǥ��ޤ���
�嵭��°������ꤹ��ȡ��¹Ի��κ�Ŭ���Τ��ᡢ�ؿ���ʣ����ɾ���� 1 �Ĥ�ɾ�����֤������Ƥ�����ʤ����ɤ����Ȥ�����������ƥ�����뤳�Ȥ��Ǥ��ޤ��� ���ꤹ��Τϡ������줫 1 �ĤΤߤǤ��� ���꤬�ʤ����ϡ��ǥե���Ȥ�VOLATILE �Ȳ�ᤵ��ޤ���
IMMUTABLE ����ꤹ��ȡ����δؿ���Ʊ�������ͤ�Ϳ������硢���Ʊ����̤��֤��ޤ��� �Ĥޤꡢ�ǡ����١����������ꡢ���ΰ����ꥹ�����ľ��¸�ߤ��ʤ��������Ѥ�����Ϥ��ޤ��� ���Υ��ץ�����ꤵ�줿��硢����������Ǥ���ؿ����ƤӽФ����Ȥ������ؿ��ͤ��֤������뤳�Ȥ��Ǥ��ޤ���
STABLE ����ꤹ��ȡ����δؿ���Ʊ�������ͤ�Ϳ����줿��硢1 �ơ��֥륹�������Ǿ��Ʊ����̤��֤����Ȥ��Ǥ��ޤ��� �����������η�̤ϡ�SQL ʸ���ۤʤ���Ѥ�äƤ��ޤ���ǽ��������ޤ��� ����ϡ��ؿ��η�̤����ǡ����١��������� (���ߤΥ����ॾ����Τ褦��) �ѥ����ѿ��ʤɤ˰�¸����ؿ��ˤ�����Ŭ�ڤ�����Ȥ����ޤ��� �ޤ���current_timestamp �ե��ߥ�δؿ��ϡ������ͤ��ȥ�����������ѹ�����ʤ����ᡢSTABLE �Ǥ��뤳�Ȥ����դ��Ƥ���������
VOLATILE ����ꤹ��ȡ�1 �ơ��֥륹�������Ǥ⤽�δؿ����ͤ��ѹ����뤳�Ȥ���ǽ�ˤʤ�ޤ��� �������äơ���Ŭ����Ԥʤ����ȤϤǤ��ޤ��� ���Τ褦�ʰ�̣�Ǵ�ȯŪ (volatile) �ʥǡ����١����ؿ��ϡ����Ū�����Ǥ��� ���Ȥ��С�random()��currval()��timeofday() �ʤɤǤ��� �ޤ����㤨�Ф��Ȥ��� setval()�Ȥ��ä������Ѥ�����ؿ��ϡ����η�̤�����ͽ¬�Ǥ���Ȥ��Ƥ⡢�ƤӽФ����Ŭ�����ʤ��褦����ȯŪ��ʬ�ह��ɬ�פ����뤳�Ȥ����դ��Ƥ���������
CALLED ON NULL INPUT (�ǥե����) ����ꤹ��ȡ����δؿ��ΰ����� NULL ��������Ǥ⡢�̾��̤�ƤӽФ���ޤ��� ���ξ��ϡ�ɬ�פ˱����� NULL �ͤ��ǧ����Ŭ�ڤ��б��뤳�Ȥ��ؿ��κ����Ԥ���Ǥ�ˤʤ�ޤ���
RETURNS NULL ON NULL INPUT �⤷���� STRICT ����ꤹ��ȡ��ؿ��ΰ����� NULL �������硢��� NULL ���֤��ޤ��� ���Υѥ��������ꤵ���ȡ����δؿ��� NULL ������������¹Ԥ���ޤ��� ����ˡ�NULL �Ȥ�����̤���ưŪ�˲��ꤵ��ޤ���
SECURITY INVOKER ����ꤹ��ȡ��ؿ���ƤӽФ����桼���θ��¤ǡ����δؿ����¹Ԥ���ޤ��� ���줬�ǥե���ȤǤ��� SECURITY DEFINER ����ꤹ��ȡ��ؿ�����������桼���θ��¤ǡ����δؿ����¹Ԥ���ޤ���
������� EXTERNAL �ϡ�SQL �Ȥθߴ������ݤĤ����¸�ߤ��Ƥ��ޤ��� ��������SQL �Ȥϰۤʤꡢ���ε�ǽ�ϳ����ؿ��ˤΤ�Ŭ�Ѥ����櫓�ǤϤʤ����ᡢ���Υ�����ɤϥ��ץ����Ǥ���
�ؿ����������ʸ����Ǥ��� ���ΰ�̣�ϸ���˰�¸���ޤ��� ����Ū�ʴؿ�̾�����֥������ȥե�����ؤΥѥ���SQL���ޥ�ɡ���³������ǽ줿�ƥ����Ȥʤɤ����Ǥ��ޤ���
���η�����AS��ϡ�C����Υ�������������δؿ�̾��SQL�ؿ���̾����Ʊ���Ǥʤ���硢ưŪ�˥����ɤ����C����ؿ��˻Ȥ��ޤ��� ʸ����obj_file��ưŪ�˥����ɤǤ��륪�֥������Ȥ�ޤ�ե������̾���ǡ�link_symbol��C���쥽������������δؿ���̾���Ǥ��륪�֥������ȤΥ����ܥ�Ǥ��� �����ܥ뤬��ά���줿��硢��������SQL�ؿ���̾����Ʊ����ΤǤ���Ȳ��ꤵ��ޤ���
�ؿ��˴ؤ���������ʬŪ�����ƻ��ꤹ������Ū����ˡ�Ǥ��� �����Ǵ�Ϣ����Τϡ��ʲ���°���Ǥ���
STRICT �ޤ��� RETURNS NULL ON NULL INPUT ��Ʊ���Ǥ���
isCachable �ϡ�IMMUTABLE ��Ʊ���Ǥ��������Ǥ��ѻߤ���Ƥ��ޤ��� �����������̸ߴ����Τ��ᡢ�ޤ������դ��뤳�ȤϤǤ��ޤ���
°��̾�Ǥϡ���ʸ����ʸ������̤��ޤ���
����˾ܤ��������ؿ��ν����ˤĤ��Ƥ� ��33.3�Ȥ��Ƥ���������
SQL�η��ι�ʸ�����ϰ������֤��ͤˤ����ƴ�����ǧ����Ƥ��ޤ��� ��������������Τ����Ĥ��κ����ʤ��Ȥ���numeric�������٥ե�����ɡˤϡ����δؿ��μ����λ�������Ǥ�����ꡢCREATE FUNCTION ���ޥ�ɤˤ�äƷٹ�ʤ���ޤ���ޤ��ʤĤޤ�ǧ���䶯���Ϥ���ޤ���ˡ�
PostgreSQL�ϴؿ��������С�����������Ĥ��ޤ��� ����ϡ��ۤʤ�����η�����äƤ�����̤δؿ���Ʊ��̾����Ȥ����Ȥ��Ǥ���Ȥ������ȤǤ��� �����������Ƥδؿ���C����ˤ�����̾���ϰۤʤ�ɬ�פ�����ޤ��� �������äơ������С������ɤ���C�δؿ��ˤϰۤʤ�C��̾����Ϳ����ɬ�פ�����ޤ��� (�㤨�С�C��̾���ΰ����˰����η�����Ѥ��Ƥ���������)
Ʊ�쥪�֥������ȥե�����Ȥ��롢CREATE FUNCTION �ƤӽФ��������֤��줿��硢���Υե�����ϰ��٤��������ɤ���ޤ��� (�����餯��ȯ�ʳ���)�ե����������ɤ��ƥ����ɤ���ˤϡ�LOAD ���ޥ�ɤ���Ѥ��Ƥ���������
�桼������δؿ���������ˤ� DROP FUNCTION ����Ѥ��Ƥ���������
�ؿ������Ǥϡ�ñ��������Хå�����å����ɬ��2�Ť˥��������פ��ʤ���Фʤ�ޤ���
�ؿ����������ˤϡ��桼���Ϥ��θ���� USAGE ���¤�ɬ�פǤ���
�����Ǥϡ��鿴�Ը����δ�ñ������ޤ��� ���¿���ξ�����㤬��33.3�˵��ܤ���Ƥ��ޤ���
CREATE FUNCTION add(integer, integer) RETURNS integer
AS 'select $1 + $2;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;