¾�ΥС�������ʸ�� �� 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���ܥ֤˿�����ޤ�ʤ��ǥ��ꥹ�θ��¤��������Ȥ��줿�Ȥ����顢���ꥹ�Ϥ��ζ��Τ������ͤǤϤʤ��ʤ�Ǥ��礦�͡���������ǰ������Թ礬ȯ��������硢��̤˱ƶ���Ϳ���뤤���ʤ��³����¹Ԥ���ʤ��Ȥ����ξڤ�ɬ�פǤ���������³�����ȥ�󥶥�������˥��롼�ײ�����ȡ����γξڤ������ޤ��� ����ȥ�󥶥�������¾�Υȥ�󥶥�����󤫤鸫�ƴ��뤹�뤫�ޤä���������ʤ��ä����Ȥ���������������Ū�ȸƤФ�ޤ���

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

¾�ˤ�ȥ�󥶥����������Υǡ����١����ν��פ������ϡ�����Ū�����Ȥ�����ǰ�˿����ط����Ƥ��ޤ���ʣ���Υȥ�󥶥������Ʊ����ư��Ƥ���������줾��Υȥ�󥶥��������̤Υȥ�󥶥�����󤬹ԤäƤ���̤��λ���ѹ��򸫤뤳�Ȥ��Ǥ��ƤϤʤ�ޤ����㤨�С�1�ĤΥȥ�󥶥���������Ƥλ�Ź�λĹ�򽸷פ����Ȥ�˻�����ơ����ꥹ�θ��¤������Ź�����ꥹ�θ��¤���ΰ�����Ȥ���������줺���ܥ֤θ��¤������Ź���ܥ֤θ��¤ؤο�����ߤ�Ģ���ʤ��Ȥ�����ʤ��εդ⤢��ޤ����ˡ��ɤ��ʤ�Ǥ��礦�����Ĥޤꡢ�ǡ����١�����Ǥι���Ū���̤Ȥ�����̣�Τߤʤ餺����Ϣ�����β����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���ޥ�ɤˤ�ꥻ���֥ݥ���Ȥޤǥ�����Хå��Ǥ��ޤ���������줿�����֥ݥ���Ȥȥ�����Хå�����ݥ���ȤȤδ֤����ƤΥȥ�󥶥������ǡ����١������ѹ����˴�����ޤ����������֥ݥ���Ȱ������ѹ����ݻ�����ޤ���

�����֥ݥ���Ȥޤǥ�����Хå������夵��˥����֥ݥ���Ȥ�����������֤���ޤ��Τǡ�������Хå��Υݥ��������ϲ���Ǥ�Ǥ��ޤ����դ˺��٥�����Хå���������Υݥ���Ȥ�ɬ�פʤ��ΤǤ���С���������������ƥ�꥽������¿���Ȥ�������뤳�Ȥ��Ǥ��ޤ��������֥ݥ���Ȥ��������ꥻ���֥ݥ���Ȥ˥�����Хå����뤳�Ȥϡ���ưŪ�ˤ��θ��������줿���ƤΥ����֥ݥ���Ȥ������뤳�ȤǤ���Ȥ������Ȥ����դ��Ƥ���������

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

��ԤΥǡ����١�����פ��Ф��Ƥ������������ꥹ�θ��¤���$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���ޥ�ɤ�������Хå��򴰷뤵�����˺Ƴ��Ϥ����뤿�����������᤹ͣ��μ��ʤǤ���