Chapter 32. ������

Table of Contents
32.1. ������������
32.2. ���ݸı�Ŀ�����
32.3. �� C �����
32.4. һ������������

�������������д������������ ���������������� C �����κ��������õĹ������Ա�д�� Ŀǰ�������� SQL ������д��������

32.1. ������������

һ������������������һ��INSERT��UPDATE�� ���� DELETE ����֮ǰ����֮��ִ�У�Ҫô�Ƕ�ÿ�����޸ĵ���һ�Σ� Ҫô��ÿ�� SQL һ�Ρ� ��������������¼�����ô���ں��ʵ�ʱ�̵��ô������ĺ����Դ�����¼���

���������������ڴ���������֮ǰ����Ϊһ��û�в������ҷ���trigger���͵ĺ������塣 ������������ͨ������� TriggerData �ṹ���������룬����������ͨ��������������ʽ����

һ��������һ�����ʵĴ��������������������� CREATE TRIGGER ������ͬһ�������������������ڶ����������

���������͵Ĵ����������д����Ĵ������Ͱ���䴥���Ĵ��������ڰ��д����Ĵ������ ������������Ϊ���������������Ӱ���ÿһ��ִ��һ�Ρ����֮�£�һ������䴥���Ĵ���������ÿִ��һ�κ��ʵ����ִ��һ�εģ� ������Ӱ����������ر��ǣ�һ��Ӱ�����е���佫��Ȼ�����κ����õİ���䴥���Ĵ�������ִ�С� ���������͵Ĵ�������ʱ��ֱ����"�м���Ĵ�����"��"��伶��Ĵ�����"��

��伶��� "before" ������ͨ������俪ʼ���κ�����֮ǰ������ ����伶��� "after" ��������������󴥷��� �м���� "before" �������ڶ��ض��н��в�����ʱ�����ϴ����� ���м���� "after" ����������������ʱ�򴥷����������κ���伶��� "after" ������֮ǰ����

����䴥���Ĵ�����Ӧ�����Ƿ��� NULL�� �����Ҫ�����д����Ĵ������������Ը���������ִ���߷���һ�������У�һ������Ϊ HeapTuple ����ֵ���� ��Щ�ڲ���֮ǰ�����Ĵ�����������ѡ��

һ�����⵼���κ�������Ϊ���ڲ���֮ǰ�������м�������������ϸ�����Ǹ����������д�������ͬһ�� ��Ҳ����˵������ INSERT �� UPDATE ���������ԣ��� NEW �У� ���� DELETE ���������ԣ��� OLD �У���

�����ڲ���֮�󴥷����м���Ĵ��������䷵��ֵ�ᱻ���ԣ�������ǿ��Է���NULL��

�������һ��������Ϊͬ�����¼�������ͬ���Ĺ�ϵ�ϣ� �����������������ֵ���ĸ˳�������˳�򴥷��� ������¼�֮ǰ�����Ĵ�������ÿ�����������صĿ����Ѿ����޸Ĺ����г�Ϊ��һ�������������롣 ����κ��¼�֮ǰ�����Ĵ��������� NULL ָ�룬 ��ô������������������Ĵ��������ᱻ������

ͨ�����е� before ���������ڼ����޸Ľ�Ҫ������߸��µ����ݡ� ���磬һ�� before �������������ڰѵ�ǰʱ�����һ��ʱ����ֶΣ� ���߸��ٸ��е�����Ԫ����һ�µġ��е� after �������������������߸��������� ���߶����������һ���Լ�顣��ô���ֹ�����ԭ���ǣ� after �������϶����Կ������е������ֵ�� �� before ���������ܣ��������������� before ����������󴥷��� �����û�о����ԭ���崥������ before ���� after����ô before ��������Ч�ʸ�Щ�� ��Ϊ������ص���Ϣ���ر��浽���Ľ�β��

���һ������������ִ�� SQL ���Ȼ����Щ��������ٴδ����������� �������ν�ļ������������Լ����������ļ������û����ȷ�����ơ� �п��ܳ��ּ�������������ͬһ���������ĵݹ���õ������ ���磬һ�� INSERT ����������ִ��һ����� ��һ��������в���ͬһ�����У����� INSERT �������ٴμ����� ��������������ݹ�������Ǵ���������Ա�����Ρ�

�ڶ���һ����������ʱ�����ǿ�������һЩ������ �ڴ����������������������Ŀ����������������IJ�ͬ����������ͬһ�������� ���磬���ǿ�����һ��ͨ�õĴ����������� ���������ֶ����֣��ѵ�ǰ�û����ڵ�һ��������ǰʱ����ڵڶ����� ֻҪ����д��ǡ������ô��������������Ϳ��Ժʹ��������ض����޹ء� ����ͬһ�������Ϳ����������ź����ֶε��κα�� INSERT �¼���ʵ���Զ����ٽ��ױ��еļ�¼����֮������⡣��������һ�� UPDATE �����������ǻ������������������µ��¼���

ÿ��֧�ִ������ı�����Զ����Լ��ķ����ô����������õ��������ݡ� ��Щ�������ݰ����������¼������ͣ����磬INSERT ���� UPDATE���Լ������� CREATE TRIGGER �����г��IJ����� ���ڵͲ�εĴ���������������Ҳ���� INSERT �� UPDATE �������� NEW �У���/�� UPDATE �� DELETE �������� OLD �С� ��伶��Ĵ�����Ŀǰû���κη�����������޸ĵĶ����С�