¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

3.4. �ȥ�󥶥������

�ȥ�󥶥������ �Ϥ��٤ƤΥǡ����١��������ƥ�Ǵ��äȤʤ복ǰ�Ǥ����ȥ�󥶥������δ���Ū������ʣ���μ���ñ��Ρ����Ƥ�̵�����פ����ˤޤȤᤢ���뤳�ȤǤ������οʹ�����ξ��֤Ϥۤ���ư���Ƥ���ȥ�󥶥�����󤫤�ϸ����ޤ��� �����ơ��ʤ�餫�Υ��顼������������ȥȥ�󥶥������δ�����ɤ��ΤǤ��� �Ǥ�����ǡ����١����ϥ��顼�θ����Ȥʤä����ˤ�äƤޤä����ƶ�����뤳�ȤϤ���ޤ���

��򤢤��ޤ��礦�������ԤΥǡ����١����Ǥ�����¿���θܵҤθ��¤λĹ�Ȼ�Ź�����¶�Ĺ⤬��Ͽ����Ƥ���Ȥ��ޤ������ꥹ�θ��¤���ܥ֤θ��¤� $100.00 �����⤬���ä����Ȥ�Ͽ�������Ȥ��ޤ�������ä���˽��ñ�㲽����Ȥ��� SQL �ϤĤ��Τ褦�ˤʤ�ޤ���

UPDATE accounts SET balance = balance - 100.00
    WHERE name = 'Alice';
UPDATE branches SET balance = balance - 100.00
    WHERE name = (SELECT branch_name FROM accounts WHERE name = 'Alice');
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Bob';
UPDATE branches SET balance = balance + 100.00
    WHERE name = (SELECT branch_name FROM accounts WHERE name = 'Bob');

�񤫤�Ƥ��� SQL ���ޥ�ɤξܤ������ȤˤĤ��ƺ��ΤȤ������פǤ���ޤ��󡣽��פ����Ϥɤ��餫�Ȥ����Ф���ñ���������Ū��̤����������Ω����������³��������äƤ��뤳�ȤǤ�����Կ����Ȥ��ƤϤ���餹�٤Ƥι������Ԥ��뤫�⤷���Ϥޤä����Ԥ��ʤ��Τ������줫�γξڤ�ɬ�פǤ���$100.00 �����ꥹ�θ��¤��������줺�˥ܥ֤θ��¤˿�����ޤ��褦�ʥ����ƥ�����������äƤϤʤ�ޤ��󡣰�����$100.00 ���ܥ֤˿�����ޤ�ʤ��ǥ��ꥹ�θ��¤��������Ȥ��줿�Ȥ����顢���ꥹ�Ϥ��ζ��Τ������ͤǤϤʤ��ʤ�Ǥ��礦�͡���������ǰ������Թ礬ȯ��������硢��̤˱ƶ��򤢤����뤤���ʤ��³����¹Ԥ���ʤ��Ȥ����ξڤ�ɬ�פǤ���������³���� �ȥ�󥶥�������˥��롼�ײ�����Ȥ��γξڤ������ޤ��� ����ȥ�󥶥������Ϥۤ��Υȥ�󥶥�����󤫤鸫�ƴ��뤹�뤫�ޤä���������ʤ��ä����Ȥ���������������Ū�ȸƤФ�ޤ���

�⤦�������ä���ȥ�󥶥�����󤬴��뤷�ǡ����١��������ƥब��ǧ�����Ф����ϳμ¤����ѤΤ�ΤȤ��Ƶ�Ͽ���졢���Ȥ�ľ��˥���å��夬�����ä��Ȥ��Ƥ⵭Ͽ�ϼ����ʤ��Ȥ����ξڤ�ɬ�פǤ��� �㤨�Хܥ֤���ʬ�θ��¤��鸽��������Ȥ���Ź�ޤ���Ω����ä�ľ��˥ܥ֤θ��¤���ΰ�����Ȥ���Ͽ�������ƥ�Υ���å���Ǿä��Ƥ��ޤ����Ȥϼ���������ޤ��� �ȥ�󥶥�����󤬼�������Ƥ���ǡ����١����ǤϤ���ȥ�󥶥������ˤ�뤹�٤Ƥι��������Υȥ�󥶥������򴰷뤷�������Τ򤪤��ʤ����ˡʥǥ������ʤɤΡ˱�³Ū��Ͽ���֤˥�����񤭹��ळ�Ȥ��ݾڤ��Ƥ��ޤ���

�ۤ��ˤ�ȥ�󥶥����������Υǡ����١����ν��פ������ϸ���Ū�����Ȥ�����ǰ�˿����ط����Ƥ��뤳�ȤǤ���ʣ���Υȥ�󥶥������Ʊ����ư��Ƥ���Ȥ������줾��Υȥ�󥶥��������̤Υȥ�󥶥�����󤬤����ʤäƤ���̤��λ���ѹ��򸫤뤳�Ȥ��Ǥ��ƤϤʤ�ޤ����㤨�С��ҤȤĤΥȥ�󥶥�����󤬤��٤Ƥλ�Ź�λĹ�򽸷פ����Ȥ�˻�����ơ����ꥹ�θ��¤������Ź�����ꥹ�θ��¤���ΰ�����Ȥ�����ˤ��줺���ܥ֤θ��¤������Ź���ܥ֤θ��¤ؤο�����ߤ�Ģ���ʤ��Ȥ����顢���εդ⤢��ޤ����ɤ��ʤ�ޤ������Ȥ������Ȥϥȥ�󥶥������ϥǡ����١�����Ǥι���Ū���̤Ȥ�����̣�Τߤʤ餺��Ϣ�����β����DzĻ����Ȥ������Ȥˤ����Ƥϡ֤��٤ơפ���̵���פ��Ǥʤ���Фʤ�ޤ��󡣺����Υȥ�󥶥������ˤ�빹���Ϥۤ��Υȥ�󥶥�����󤫤�ϥȥ�󥶥�����󤬴��뤹��ޤ��ԲĻ�Ǥ��� ���Υȥ�󥶥�����󤬴��뤷�����λ����ǥȥ�󥶥�����󤬹Ԥä������Τ��٤Ƥ����λ����Ǹ�����褦�ˤʤ�ޤ���

PostgreSQL �Ǥϥȥ�󥶥������������� SQL ���ޥ�ɤ� BEGIN �� COMMIT �ǰϤ�����ꤷ�ޤ�����������ȡ����ζ�Լ������Υȥ�󥶥������μºݤϤĤ��Τ褦�ˤʤ�ޤ���

BEGIN;
UPDATE accounts SET balance = balance - 100.00
    WHERE name = 'Alice';
-- etc etc
COMMIT;

�ȥ�󥶥���������������ǥ��ߥåȤ�Ԥ�ʤ��ʥ��ꥹ�θ��»Ĺ⤬­��ʤ��ä��褦�ʾ��ˤ�Ƚ�Ǥ������� COMMIT �ǤϤʤ� ROLLBACK ����Ѥ��ƹԤʤä����٤Ƥι������˴����ޤ���

PostgreSQL �ϼºݤ��٤Ƥ� SQL ̿��ʸ��ȥ�󥶥��������Ǽ¹Ԥ���褦�ˤʤäƤ��ޤ���BEGIN ��ȯ�Ԥ��ʤ��Ǥ⤽�줾���̿��ʸ�ϰ���Ū�� BEGIN ���Ĥ��Ƥ���Ȥߤʤ�����������С�COMMIT �ǰϤޤ�Ƥ����ΤȤ��ޤ���BEGIN �� COMMIT �ǰϤޤ줿̿��ʸ�Υ��롼�פ� �ȥ�󥶥������֥��å��ȸƤФ�뤳�Ȥ⤢��ޤ���

����: �����Ĥ��Υ��饤����ȥ饤�֥��ϼ�ưŪ�� BEGIN �� COMMIT ���ޥ�ɤ�ȯ�Ԥ����ٹ�̵���˥ȥ�󥶥������֥��å���ͭ���ˤʤ�褦�ˤ��ޤ������Ѥ��Ƥ��륤�󥿥ե������Υɥ�����Ȥdz�ǧ���Ƥ���������

�����֥ݥ��������Ѥ��뤳�ȤǤ��γ�٤�٤����ȥ�󥶥���������̿��ʸ�����椹�뤳�Ȥ���ǽ�ˤʤ�ޤ��������֥ݥ���Ȥϥȥ�󥶥������������뤢����ʬ������Ū���˴���������˴�����ʤ��Ĥ����ʬ�ϥ��ߥåȤ���ޤ���SAVEPOINT ���ޥ�ɤǥ����֥ݥ���Ȥ������������ɬ�פǤ���� ROLLBACK TO ���ޥ�ɤˤ�ꥻ���֥ݥ���Ȥޤǥ�����Хå��Ǥ��ޤ���������줿�����֥ݥ���Ȥȥ�����Хå�����ݥ���ȤȤδ֤����ƤΥȥ�󥶥������ǡ����١������ѹ����˴�����ޤ����������֥ݥ���Ȱ������ѹ����ݻ�����ޤ���

�����֥ݥ���Ȥޤǥ�����Хå������幹�˥����֥ݥ���Ȥ�����������֤���ޤ��Τǥ�����Хå��Υݥ��������ϲ���Ǥ�Ǥ��ޤ����դ˺��٥�����Хå���������Υݥ���Ȥ�ɬ�פʤ��ΤǤ���в���������ƥ�꥽������¿���ȤⳫ����������Ǥ��ޤ������դ������ϥ����֥ݥ���Ȥ��������ꥻ���֥ݥ���Ȥ˥�����Хå�������ϼ�ưŪ�ˤ��θ��������줿���ƤΥ����֥ݥ���Ȥ���������ˤʤ�ޤ���

��������Ƥϥȥ�󥶥������֥��å���ǰ��������������¾�Υǡ����١������å���󤫤�ϲ��⸫���ޤ��󡣥ȥ�󥶥������֥��å��򥳥ߥåȤ������¾�Υ��å���󤫤�ϥ��ߥåȤ��줿�԰٤��ҤȤĤ�ñ�̤Ȥ��Ƹ�����褦�ˤʤ�ޤ�����������Хå��ι԰٤Ϸ褷�ƲĻ�ˤʤ�ޤ���

��ԤΥǡ����١�����פ������Ƥ������������ꥹ�θ��¤��� $100.00 ������Ф��ƥܥ֤θ��¤˿������Ȥ��ޤ�����ˤʤäƥܥ֤ǤϤʤ������꡼�θ��¤˿������٤����ä��ȵ����Ĥ��ޤ��������ξ�祻���֥ݥ���Ȥ򼡤Τ褦�ˤĤ����ޤ���

BEGIN;
UPDATE accounts SET balance = balance - 100.00
    WHERE name = 'Alice';
SAVEPOINT my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Bob';
-- ���äȡ�˺���Ȥ������ä��������꡼�θ��¤�Ȥ�ʤ���С�
ROLLBACK TO my_savepoint;
UPDATE accounts SET balance = balance + 100.00
    WHERE name = 'Wally';
COMMIT;

������Ϥ�������ü��ñ�㲽���Ƥ��ޤ��������֥ݥ���Ȥλ��Ѥ��̤��ƥȥ�󥶥������֥��å����Ф�¿��������Ԥ��뤳�Ȥ�Ƚ��ޤ������ˤϤʤ�餫�Υ��顼�ǥ����ƥब�ȥ�󥶥������֥��å������Ǥ������ ROLLBACK TO ���ޥ�ɤ�������Хå��δ���򱪲󤷺Ƴ��Ϥ����뤿�����������᤹ͣ��μ��ʤǤ���