�ȥꥬ�Ȥϡ��ǡ����١�������������������Ԥ�줿���˾�˼�ưŪ�˼¹Ԥ��ʤ���Фʤ�ʤ�����ε�ǽ�˴ؤ��뵬��Ǥ��� �ȥꥬ�ϥơ��֥�ȥӥ塼����������Ϳ���뤳�Ȥ��Ǥ��ޤ���
�ơ��֥��Ǥϡ��ȥꥬ��INSERT��UPDATE�ޤ���DELETE��������ˡ��Ԥ��ѹ������١����뤤��SQLʸ���Ȥ˼¹Ԥ���褦��������뤳�Ȥ��Ǥ��ޤ��� UPDATE�ȥꥬ�ˤĤ��Ƥϡ�����Υ���बUPDATEʸ��SET����оݤˤʤä����Τ�ȯư����褦���ꤹ�뤳�Ȥ��Ǥ��ޤ����ޤ����ȥꥬ��TRUNCATEʸ�ˤĤ��Ƥ�¹ԤǤ��ޤ��� �ȥꥬ���٥�Ȥ�������ȡ��ȥꥬ�ؿ������Υ��٥�Ȥ�Ŭ�ڤʻ����ǸƤӽФ���ޤ���
�ӥ塼��Ǥϡ��ȥꥬ��INSERT��UPDATE�ޤ���DELETE��������˼¹Ԥ����ΤȤ�������Ǥ��ޤ���INSTEAD OF�ȥꥬ�ϡ��ӥ塼����ѹ���Ԥ������ɬ�פȤʤ�Ԥ��줾����Ф��ư���ȯ�Ԥ���ޤ��� ���ˤʤäƤ���ơ��֥�ؤ�ɬ�פ��ѹ��μ»ܡ�������ɬ�פ˱����ơ��ӥ塼��Ǹ�����Ǥ������ѹ����줿�Ԥ��ֵѤ���Τϡ��ȥꥬ�ؿ�����Ǥ�Ǥ����ӥ塼�ؤΥȥꥬ�ϡ�SQLʸ���Ȥˡ�INSERT��UPDATE�ޤ���DELETE��������Ǽ¹Ԥ�����褦������뤳�Ȥ��Ǥ��ޤ���
�ȥꥬ�ؿ��ϡ��ȥꥬ���Τ�������������ޤǤ�������Ƥ���ɬ�פ�����ޤ��� �ȥꥬ�ؿ��ϡ���������ʤ���trigger�����֤��ؿ��Ȥ�����������ɬ�פ�����ޤ� �ʥȥꥬ�ؿ��ϡ��̾�δؿ��ǻ��Ѥ��������Ȥ������ǤϤʤ���TriggerData��¤�Τ����Ϥ�������ޤ��ˡ�
Ŭ�ڤʥȥꥬ�ؿ������������ȡ�CREATE TRIGGER����Ѥ��ƥȥꥬ���ۤ��뤳�Ȥ��Ǥ��ޤ��� Ʊ��Υȥꥬ�ؿ���ʣ���Υȥꥬ�˻��Ѥ��뤳�Ȥ��Ǥ��ޤ���
PostgreSQL�ϡ���ñ�̤��ȥꥬ��ʸñ�̤��ȥꥬ��ξ�������ޤ��� ��ñ�̤Υȥꥬ�Ǥϡ��ȥꥬ��ȯ�Ԥ���ʸ�ˤ�äƱƶ��������Ԥ��Ȥ˥ȥꥬ�ؿ����ƤӽФ���ޤ��� ȿ�Фˡ�ʸñ�̤Υȥꥬ�Ǥϡ�Ŭ�ڤ�ʸ���¹Ԥ��줿���ˡ�����ʸ�Dz��Ԥ��ƶ�����������ɤ����ϴط��ʤ������٤����ƤӽФ���ޤ��� �äˡ��Ԥ˱ƶ���Ϳ���ʤ�ʸ�Ǥ��äƤ⡢Ŭ�ڤ�ʸñ�̤Υȥꥬ������м¹Ԥ���ޤ��� ����2����Υȥꥬ�Ϥ��줾���ԥ�٥��ȥꥬ��ʸ��٥��ȥꥬ<�ȸƤФ�뤳�Ȥ�����ޤ���TRUNCATE���Ф���ȥꥬ��ʸ��٥�ȥꥬ�Τߤ�������뤳�Ȥ��Ǥ��ޤ��� �ӥ塼�Ǥϡ�ʸ��٥�ǤΤߡ�����������Ǥμ¹Ԥ�褦������뤳�Ȥ��Ǥ���Ǥ��礦��������INSERT��UPDATE�ޤ���DELETE������˼¹Ԥ���ȥꥬ�Ϲԥ�٥�ǤΤ�����Ǥ���Ǥ��礦��
�ޤ����ȥꥬ�Ϥ���餬�����������ޤ��������Τɤ�Ǽ¹Ԥ���뤫�˱�����ʬ�����ޤ��������Ϥ��줾��BEFORE�ȥꥬ��AFTER�ȥꥬ��������INSTEAD OF�ȥꥬ�ȸƤФ�ޤ��� ʸ��٥��BEFORE�ȥꥬ�ϡ�ʸ��������Ϥ�����˼�����ȯ�Ԥ��졢ʸ��٥��AFTER�ȥꥬ��ʸ�������˺Ǹ��ȯ�Ԥ���ޤ��������Υ����פΥȥꥬ�ϥơ��֥�ޤ��ϥӥ塼����������Ǥ��礦�� �ԥ�٥��BEFORE�ȥꥬ�ϡ�����ιԤ������ľ����ȯ�Ԥ��졢�ԥ�٥��AFTER�ȥꥬ��ʸ�ν����ʤ����������Ƥ�ʸ��٥��AFTER�ȥꥬ�����ˤ�ȯ�Ԥ���ޤ��������Υ����פΥȥꥬ�ϥơ��֥�ˤΤ���������Ǥ��礦�� �ԥ�٥��INSTEAD OF�ȥꥬ�ϥӥ塼�ˤΤ�������졢�ӥ塼��ιԤ��Ȥ���ɬ�פ�Ƚ�Ǥ��줿����¨�¤�ȯ�Ԥ���ޤ���
ʸñ�̤Υȥꥬ�ˤ�äƸƤӽФ����ȥꥬ�ؿ��Ͼ��NULL���֤��ʤ���Фʤ�ޤ��� ��ñ�̤Υȥꥬ�ˤ�äƸƤӽФ����ȥꥬ�ؿ��ϸƤӽФ����Υ��������塼���˥ơ��֥�ԡ�HeapTuple�����͡ˤ��֤��褦�����뤳�Ȥ��Ǥ��ޤ��� �������ȯ�Ԥ��줿�ԥ�٥�Υȥꥬ�Ǥϰʲ�������褬����ޤ���
NULL���֤��ơ����ߤιԤؤ��������Ф����Ȥ��Ǥ��ޤ��� ����ϡ����������塼���˥ȥꥬ�θ��ˤʤä��ԥ�٥����������Υơ��֥�Ԥ�����������������ˤ�Ԥ�ʤ��褦�ؼ����ޤ���
�ԥ�٥��INSERT�����UPDATE�ȥꥬ�ξ��Τߡ��֤����Ԥ���������롢�⤷���ϼºݤ˹��������Ԥˤʤ�ޤ��� ����ˤ�ꡢ�ȥꥬ�ؿ��ǡ����������Ԥ⤷���Ϲ��������Ԥ��ѹ����뤳�Ȥ��Ǥ��ޤ���
������ư��������ʤ��ԥ�٥��BEFORE�ȥꥬ�ˤĤ��Ƥϡ��Ϥ��줿�ԡʤĤޤꡢINSERT�����UPDATE�ȥꥬ�Ǥ�NEW�ԡ�DELETE�ξ���OLD�ԡˤ�Ʊ���Է�̤��֤��褦�˵����դ���ɬ�פ�����ޤ���
�ԥ�٥��INSTEAD OF�ȥꥬ�ϡ��ӥ塼�θ��Ȥʤä����ơ��֥�Υǡ�����ޤä����ѹ����ʤ����Ȥ�ɽ��NULL���ޤ��ϡ��Ϥ��줿�ӥ塼�ιԡ�INSERT��UPDATE���ξ��NEW�ԡ�DELETE���ξ��OLD�ԡˤ��֤��ʤ���Фʤ�ޤ��� ��NULL������ͤϡ����Υȥꥬ���ӥ塼�ˤ�����ɬ�פʥǡ����ѹ���¹Ԥ������Ȥ����Τ��뤿��˻��Ѥ���ޤ��� ����ˤ��ƶ���������Կ�������륫�������ä���ޤ��� INSERT��UPDATE���Ǥϡ��ȥꥬ���᤹����NEW�Ԥ��ѹ����뤳�Ȥ��Ǥ��ޤ��� �����INSERT RETURNING�ޤ���UPDATE RETURNING���֤����ǡ������ѹ����ޤ��Τǡ��ӥ塼�����줿�ǡ��������Τ�Ʊ����̤��֤��ʤ�����ͭ�פǤ���
���θ��ȯ������ԥ�٥�ȥꥬ�Ǥ�����ͤ�̵�뤵��ޤ��Τǡ�������NULL���֤����Ȥ��Ǥ��ޤ���
Ʊ���졼�����Ʊ�쥤�٥�Ȥ��Ф���1�İʾ�Υȥꥬ��������줿��硢�ȥꥬ�Ϥ���̾���Υ���ե��٥åȽ��ȯ�����ޤ��� BEFORE�ȥꥬ��INSTEAD OF�ȥꥬ�ξ��Ǥϡ��ƥȥꥬ���֤���롢�ѹ����줿��ǽ��������Ԥ����Υȥꥬ�����ϤȤʤ�ޤ��� �⤷������BEFORE�ȥꥬ��INSTEAD OF�ȥꥬ��NULL���֤����顢(���ޤΤȤ���)���Ϥ��ιԤ����Ǥ����Ĥ�Υȥꥬ��ȯ�����ޤ���
�ȥꥬ����ϡ��ȥꥬ��ȯư���뤫�ɤ�����WHEN����������ǻ��ꤹ�뤳�Ȥ��ǽ�Ǥ����ԥ�٥�ȥꥬ�ˤ����ơ�WHEN���ϹԤ���θŤ��ͤ�(���뤤��)�������ͤ����뤳�Ȥ��Ǥ��ޤ���(���ޤ�ͭ�ѤǤϤ���ޤ���ʸ��٥�ȥꥬ�Ǥ�WHEN����Ʊ�����Ȥ��Ǥ��ޤ���)BEFORE�ȥꥬ�Ǥϡ��¼�Ū�˥ȥꥬ�ؿ��γ��ϻ���Ʊ�����Ǹ����Ǥ���褦�ˡ�WHEN����ɾ�����ؿ��μ»�ľ���ˤʤ���ޤ���������AFTER�ȥꥬ�Ǥϡ�WHEN����ɾ���ϹԤι���ľ��˹Ԥ�졢ʸ�ν����(���ߥåȻ�)�˥ȥꥬ��ȯư���뤿��Υ��٥�Ȥ��Ԥ����������뤫�ɤ�������ޤ������Τ��ᡢ����AFTER�ȥꥬ��WHEN��郎�����֤��ʤ��ä����ϡ����٥�Ȥ��Ԥ�����������ɬ�פ�ʸ�ν����˹Ԥ�Ƽ�������ɬ�פ⤢��ޤ�����ϡ����̤ιԤ��ѹ���ȯ�����뤱��ɤ⡢�ȥꥬ��������ξ����ιԤ��Ф��ƤΤ�ȯư������ɬ�פ����롢�Ȥ��ä�ʸ�ν���®�٤������˾夲����̤�����ޤ���INSTEAD OF�ȥꥬ��WHEN���ݡ��Ȥ��Ƥ��ޤ���
�̾�ԥ�٥��BEFORE�ȥꥬ�ϡ��������뤤�Ϲ��������ͽ��Υǡ����θ������ѹ��Τ���˻��Ѥ���ޤ��� �㤨�С�BEFORE�ȥꥬ�ϡ�timestamp������˸�������������뤿��ˡ����뤤�ϹԤ�2�Ĥ����Ǥ������������뤿��˻��Ѥ�����ǽ��������ޤ��� �ԥ�٥��AFTER�ȥꥬ�ϡ��ۤȤ�ɾQŪ��¾�Υơ��֥�˹��������Ť����뤿��ˡ����뤤��¾�Υơ��֥�Ȥ������������뤿��˻��Ѥ���ޤ��� ���������Ż����ڤ�ʬ����ͳ�ϡ�AFTER�ȥꥬ�ϹԤκǽ��ͤ뤳�Ȥ��Ǥ���BEFORE�ȥꥬ�ϸ��뤳�Ȥ��Ǥ��ʤ��Ȥ������Ǥ��� �ȥꥬ��BEFORE�ˤ��뤫AFTER�ˤ��뤫�����������̤���ͳ���ʤ��ΤǤ���С����ξ����Ԥ������ޤ��ݻ�����ɬ�פ��ʤ�ʬ��BEFORE��Ȥ�������ΨŪ�Ǥ���
�ȥꥬ�ؿ���SQL���ޥ�ɤ���������硢�������䤤��碌���ȥꥬ�����ȯ�Ԥ��뤳�Ȥ�����ޤ��� ����ϥ��������ɤ��줿�ȥꥬ�ȸƤФ�ޤ��� ���������ɤ��ʿ���ľ��Ū�����¤Ϥ���ޤ��� ���������ɤξ�硢Ʊ���ȥꥬ��Ƶ�Ū�˸ƤӽФ����Ȥ���ǽ�Ǥ��� �㤨�С�INSERT�ȥꥬ��Ʊ���ơ��֥���ɲäιԤ����������䤤��碌���¹Ԥ��줿��硢���η�̤Ȥ���INSERT�ȥꥬ������ȯ�Ԥ���ޤ��� ��������������̵�ºƵ����ɤ��Τϡ��ȥꥬ�ץ�����ޤ���Ǥ�Ǥ���
�ȥꥬ���������������Υȥꥬ�Ѥΰ�������ꤹ�뤳�Ȥ��Ǥ��ޤ��� �ȥꥬ����˰�����ޤ��Ū�ϡ������褦����ΰۤʤ�ȥꥬ��Ʊ���ؿ���ƤӽФ����Ȥ��Ǥ���褦�ˤ��뤳�ȤǤ��� �㤨�С�2�Ĥ���̾������Ȥ��������˸��ߤΥ桼����⤦�����˸��ߤΥ����ॹ����פ��롢�Ʋ��ȥꥬ�ؿ�������Ȥ��ޤ��� Ŭ�ڤ˺�������С����δؿ�������Υȥꥬ��ȯ�Ը��Ȥʤ�ơ��֥�˰�¸���뤳�ȤϤʤ��ʤ�ޤ��� Ʊ���ؿ�����Ѥ��ơ��㤨�С��ȥ�������ơ��֥�˺�����Ͽ��ưŪ����Ͽ�����뤿��ˡ�Ŭ�ڤ�������Ǥ�դΥơ��֥��INSERT���٥�Ȥ˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ���UPDATE�Ȥ����������С��ǽ��������٥�Ȥ����פ��뤿��˻��Ѥ��뤳�Ȥ��ǽ�Ǥ���
�ȥꥬ�ݡ��Ȥ���ץ�����ߥ���Ϥ��줾���ȼ�����ˡ�ǡ��ȥꥬ�ؿ������ѤǤ���ȥꥬ�����ϥǡ�����������ޤ��� �������ϥǡ����ˤϥȥꥬ���٥�ȼ�����㤨��INSERT��UPDATE�ʤɡ�CREATE TRIGGER�ǻ��ꤵ�줿���Ƥΰ����ˤ��ޤޤ�ޤ��� �ԥ�٥�ȥꥬ�����ϥǡ����ˤϡ�INSERT�����UPDATE�ȥꥬ�ξ���NEW�Ԥ���UPDATE�����DELETE�ȥꥬ�ξ���OLD�Ԥ��ޤޤ�ޤ��� ʸ��٥�ȥꥬ�ˤϸ��ߡ�ʸ�ˤ�ä��ѹ������ġ��ιԤ����뤿��μ��ʤ�����ޤ���