¾�ΥС�������ʸ�� �� 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

UPDATE

̾��

UPDATE -- ï¿½Æ¡ï¿½ï¿½Ö¥ï¿½Î¹Ô¤ò¹¹¿ï¿½ï¿½ï¿½ï¿½ï¿½

����

[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    SET { column_name = { expression | DEFAULT } |
          ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
    [ FROM from_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

����

UPDATE�ϡ��������������ƤιԤλ��ꤷ������ͤ��ѹ����ޤ��� SET��ˤϡ��ѹ�������Τߤ���ꤹ��ɬ�פ�����ޤ��� SET��ˤ�����Ū�˻��ꤵ��ʤ��ä�����ͤ��ѹ�����ޤ���

�ǡ����١������¾�Υơ��֥�ξ������Ѥ��ƥơ��֥���ѹ�����ˤϡ�2�Ĥ���ˡ������ޤ��� 1�Ĥ����䤤��碌����Ѥ�����ˡ���⤦1�Ĥ�FROM����ɲä���ơ��֥����ꤹ����ˡ�Ǥ��� �ɤ������ˡ��Ŭ�ڤǤ��뤫�Ͼ�������Ǥ���

��ά��ǽ��RETURNING��ˤ�ꡢUPDATE�ϼºݤ˹������줿�ƹԤ˴�Ť��Ʒ׻����줿�ͤ��֤��褦�ˤʤ�ޤ��� ���Υơ��֥����FROM�ǻ��ꤵ�줿¾�Υơ��֥���󡢤��뤤�ϡ�����ξ������Ѥ�������׻����뤳�Ȥ��Ǥ��ޤ��� �ơ��֥���ο������ʹ������줿��Ρ��ͤ����Ѥ���ޤ��� RETURNING�ꥹ�Ȥι�ʸ��SELECT�ν��ϥꥹ�Ȥ�Ʊ��Ǥ���

������Ԥ�����ˤϡ����Υơ��֥�ޤ��Ͼ��ʤ��Ȥ��оݤ�����UPDATE���¤�����ʤ���Фʤ�ޤ��� �ޤ�expressions��condition���ɤ߹���ơ��֥���Ф���SELECT���¤�ɬ�פˤʤ�ޤ���

�ѥ�᡼��

with_query

WITH��ˤ��UPDATE�䤤��碌���̾���ǻ��Ȳ�ǽ�ʣ��İʾ�����䤤��碌����ꤹ�뤳�Ȥ��Ǥ��ޤ��� ��7.8��SELECT�򻲾Ȥ��Ƥ���������

table_name

�����оݤΥơ��֥��̾���Ǥ��ʥ������޽���̾�Ǥ�ġˡ� �ơ��֥������ONLY����ꤹ��ȡ���̾���줿�ơ��֥�Τߤǰ��פ���Ԥ���������ޤ��� ONLY����ꤷ�ʤ��ȡ���̾�����ơ��֥뤫��Ѿ����줿���٤ƤΥơ��֥����פ���Ԥ�Ʊ���˹�������ޤ��� ��ά���뤳�Ȥ�Ǥ��ޤ������ơ��֥�̾�θ��*����ꤷ�ơ�����Ū�˻ҥơ��֥뤬�ޤޤ�뤳�Ȥ򼨤����Ȥ��Ǥ��ޤ���

alias

�оݥơ��֥������̾�Ǥ��� ��̾�����ꤵ���ȡ��ơ��֥�μºݤ�̾���ϴ����˱��ä���ޤ��� ���Ȥ��С�UPDATE foo AS f�Ǥϡ�UPDATEʸ�λĤ����ʬ�Ǥ�foo�ǤϤʤ�f�Ȥ��Ƥ��Υơ��֥�򻲾Ȥ��ʤ���Фʤ�ޤ���

column_name

table_name�ǻ�̾���줿�ơ��֥������̾�Ǥ��� ɬ�פ˱����ơ���̾�����ե������̾������λؼ��Ҥǽ������뤳�Ȥ��ǽ�Ǥ��� �о���λ���ˤϥơ��֥�̾��ޤ�ʤ��Ǥ��������� ���Ȥ��С�UPDATE tab SET tab.col = 1��̵���Ǥ���

expression

����������뼰�Ǥ��� ���μ��Ǥϡ��ơ��֥�����о���䤽��¾������ѹ������ͤ���Ѥ��뤳�Ȥ��Ǥ��ޤ���

DEFAULT

��˥ǥե�����ͤ����ꤷ�ޤ� �ʥǥե���ȼ���������Ƥ��Ƥ��ʤ�����NULL�ˤʤ�ޤ��ˡ�

from_list

WHERE���乹���Ѥμ��ˤ����ơ�¾�Υơ��֥�������ꤹ�뤿��˻��Ѥ���ơ��֥뼰�ν���Ǥ��� �����SELECTʸ��FROM���ǻ��ꤹ��ơ��֥�Υꥹ�Ȥ˻��Ƥ��ޤ��� ���ʷ���Ԥ����������from_list�˹����оݤΥơ��֥��ޤ��ɬ�פϤ���ޤ��� �ʼ��ʷ���Ԥ����ϡ�from_list��ǹ����оݤΥơ��֥�Ȥ�����̾����ꤷ�Ƥ���ɬ�פ�����ޤ��ˡ�

condition

boolean�����ͤ��֤����Ǥ��� ���μ���true���֤��ԤΤߤ���������ޤ���

cursor_name

WHERE CURRENT OF���ǻ��Ѥ���륫�������̾���Ǥ��� �����оݤιԤϡ����Υ������뤫���äȤ�Ƕ�˼��Ф��줿�ԤǤ��� ���������UPDATE���оݥơ��֥���Ф��륰�롼�ײ��Τʤ��䤤��碌�Ǥʤ���Фʤ�ޤ��� WHERE CURRENT OF���������Ȥ��ä���˻��ꤹ�뤳�ȤϤǤ��ޤ��� WHERE CURRENT OF�դ��Υ���������Ѥ˴ؤ������ˤĤ��Ƥ�DECLARE�򻲾Ȥ��Ƥ���������

output_expression

�ƹԤ򹹿�������˷׻����졢UPDATE�ˤ�ä��֤���뼰�Ǥ��� ���μ��ˤϡ�table_name�ޤ���FROM�ǻ��ꤷ���ơ��֥��ʣ���ġˤ�Ǥ�դ���̾����Ѥ��뤳�Ȥ��Ǥ��ޤ��� ���٤Ƥ�����֤�����*�ȵ��ܤ��Ƥ���������

output_name

�֤������ǻ��Ѥ����̾���Ǥ���

����

����˽����������ȡ�UPDATE���ޥ�ɤϰʲ��η����Υ��ޥ�ɥ������֤��ޤ���

UPDATE count

count��,�����פ������ѹ�����ʤ��ä��Ԥ�ޤࡢ�������줿�Կ����̣���ޤ��� BEFORE UPDATE�ȥꥬ�ˤ�깹�����������줿���ˡ�condition�˹��פ����Կ���꾯�ʤ��ʤ��ǽ�������뤳�Ȥ����դ��Ƥ��������� count��0�ξ���condition�˰��פ���Ԥ��ʤ��ä����Ȥ��̣���ޤ� �ʤ���ϥ��顼�ȤϤߤʤ���ޤ���ˡ�

UPDATE���ޥ�ɤ�RETURNING�����ľ�硢���η�̤ϡ�RETURNING�ꥹ�Ȥ������������ͤ���������Υ��ޥ�ɤǹ������줿�����Τ��Ф��Ʒ׻���Ԥ�SELECTʸ�η�̤Ȼ�����Τˤʤ�Ǥ��礦��

����

FROM�礬¸�ߤ����硢����Ū�ˡ��оݥơ��֥��from_list�ǻ��ꤵ�줿�ơ��֥뤬��礵�졢���η��ν��ϹԤ��оݥơ��֥�ι������η�̤Ȥʤ�ޤ��� FROM�����Ѥ����硢�����оݥơ��֥��1�Ԥ��Ф��ơ�����̤�ʣ���Ԥˤʤ�ʤ��褦�����դ��Ƥ��������� ����������ȡ��оݥơ��֥�θġ��ιԤϡ�¾�ơ��֥��ʣ���ιԤȷ�礹�٤��ǤϤ���ޤ��� ����̤�ʣ���Ԥˤʤä���硢�оݹԤι����ˤϷ���̤Τ����줫1�ԤΤߤ����Ѥ���ޤ������ɤιԤ����Ѥ���뤫�ϴ�ñ�ˤ�ͽ¬�Ǥ��ޤ���

���Τ褦�����꤬���뤿�ᡢ¾�ơ��֥�λ��Ȥ����䤤��碌��Τߤ�α��Ƥ����������������Ǥ��ʤ��������������������¹�®�٤��㲼���ޤ��ˡ�

��

films�ơ��֥��kind��ˤ���Drama�Ȥ���ñ���Dramatic���ѹ����ޤ���

UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';

weather�ơ��֥������ιԤ��Ф��������Ȥ������ܤ�Ĵ�������߿��̤�ǥե�����ͤ��ᤷ�ޤ���

UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT
  WHERE city = 'San Francisco' AND date = '2003-07-03';

Ʊ������Ԥ����������줿���ܤ��֤��ޤ���

UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT
  WHERE city = 'San Francisco' AND date = '2003-07-03'
  RETURNING temp_lo, temp_hi, prcp;

�̤���ꥹ�ȹ�ʸ����Ѥ���Ʊ�ͤι�����Ԥ��ޤ���

UPDATE weather SET (temp_lo, temp_hi, prcp) = (temp_lo+1, temp_lo+15, DEFAULT)
  WHERE city = 'San Francisco' AND date = '2003-07-03';

FROM�繽ʸ����Ѥ��ơ�������Ҥ�ܵҤȤ��륻���륹�ޥ�Υ����륹������Ȥ�1���ä����ޤ���

UPDATE employees SET sales_count = sales_count + 1 FROM accounts
  WHERE accounts.name = 'Acme Corporation'
  AND employees.id = accounts.sales_person;

WHERE������䤤��碌����Ѥ��ơ�Ʊ������Ԥ��ޤ���

UPDATE employees SET sales_count = sales_count + 1 WHERE id =
  (SELECT sales_person FROM accounts WHERE name = 'Acme Corporation');

���������ʤȤ��κ߸˿����������ޤ��� ���ˤ��ξ��ʤ�¸�ߤ��Ƥ�����ϡ�����˴�¸���ʤκ߸˿��򹹿����ޤ��� �ȥ�󥶥���������Τ����Ԥ��뤳�Ȥ��ʤ��褦�ˤ�������Ԥ��ˤϡ������֥ݥ���Ȥ���Ѥ��Ƥ���������

BEGIN;
-- ���������¾������Ԥ��ޤ���
SAVEPOINT sp1;
INSERT INTO wines VALUES('Chateau Lafite 2003', '24');
-- �嵭�Υ��ޥ�ɤ���ե�����ȿ�ˤ�꼺�Ԥ����Ȥ��ޤ���
-- ���ξ�硢���Υ��ޥ�ɤ�¹Ԥ��ޤ���
ROLLBACK TO sp1;
UPDATE wines SET stock = stock + 24 WHERE winename = 'Chateau Lafite 2003';
-- ¾������³�����塢�Ǹ�˼���¹Ԥ��ޤ���
COMMIT;

films�ơ��֥�ˤ����ơ�c_films�������뤬���߰��֤��Ƥ���Ԥ�kind����ѹ����ޤ���

UPDATE films SET kind = 'Dramatic' WHERE CURRENT OF c_films;

�ߴ���

���Υ��ޥ�ɤ�ɸ��SQL�˽�򤷤Ƥ��ޤ��� ������FROM�礪���RETURNING���PostgreSQL�γ�ĥ�Ǥ��� UPDATE��WITH�����Ѳ�ǽ�Ǥ��뤳�Ȥ�Ʊ�ͤ˳�ĥ�Ǥ���

ɸ��˽����ȡ���ꥹ�ȹ�ʸ�ϡ�������Τ褦��ñ��ι��ͼ����������������Υꥹ�Ȥ���Ĥ��ʤ���Фʤ�ޤ���

UPDATE accounts SET (contact_last_name, contact_first_name) =
    (SELECT last_name, first_name FROM salesmen
     WHERE salesmen.id = accounts.sales_id);

����ϸ������Ǥϥ��ݡ��Ȥ���Ƥ��ޤ��󡣥���������Ω�������Ǥʤ���Фʤ�ޤ���

¾�Υǡ����١��������ƥ�ˤϡ�FROM���ץ������ǡ��оݥơ��֥뤬���ٻ��ꤵ��뤳�Ȥ�����Ȥ���ư����Τ⤢��ޤ��� �����PostgreSQL�ˤ�����FROM�β����ˡ�Ȥϰۤʤ�ޤ��� FROM��ĥ��ǽ����Ѥ��륢�ץꥱ��������ܿ�����������դ��Ƥ���������