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

DELETE

名前

DELETE -- �ơ��֥뤫��Ԥ�������

概要

[ WITH [ RECURSIVE ] with_query [, ...] ]
DELETE FROM [ ONLY ] table [ [ AS ] alias ]
    [ USING using_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

����

DELETE�ϡ����ꤷ���ơ��֥뤫��WHERE����������Ԥ������ޤ��� WHERE���ʤ���硢���ꤷ���ơ��֥�����ƤιԤ������뤳�Ȥˤʤ�ޤ��� ���η�̡����Υơ��֥��¸�ߤ��뤬��Ȥ����Υơ��֥�ˤʤ�ޤ���

ティップ: PostgreSQL�ˤ���ĥ�Ǥ���TRUNCATE�ϡ�����®�ˡ��ơ��֥뤫�����ƤιԤ���������Ȥߤ���äƤ��ޤ���

�ǥե���ȤǤϡ�DELETE�ϻ��ꤵ�줿�ơ��֥뤪��Ӥ������Ƥλҥơ��֥�ιԤ������ޤ��� ���ꤵ�줿�ơ��֥�Τߤ������������ϡ�ONLY�����Ѥ��Ƥ���������

�ǡ����١�����Τۤ��Υơ��֥�˴ޤޤ�������Ѥ��ƥơ��֥���ιԤ���������ˡ�ˤϡ����䤤��碌��USING����ɲåơ��֥����ꤹ����ˡ�Ȥ���2�Ĥ�����ޤ��� �ɤ���ε�ˡ��Ŭ�ڤ��Ϥ��ξ����ˤ��ޤ���

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

�����¹Ԥ���ˤϡ����Υơ��֥��DELETE���¤�ɬ�פǤ��� �ޤ���USING����Υơ��֥���Ф���SELECT���¡�����ӡ�condition�ǻ��Ѥ����ͤ��ɤ߼�뤿��ˡ������ͤ��ޤޤ��ơ��֥���Ф���SELECT���¤�ɬ�פǤ���

�ѥ�᡼��

with_query

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

ONLY

���ꤵ�줿��硢��̾�����ơ��֥�Τߤ���Ԥ������ޤ��� ���ꤵ��ʤ��ä���硢��̾�����ơ��֥��Ѿ�����ơ��֥���������ޤ���

table

��¸�Υơ��֥�̾�Ǥ��ʥ������޽���̾��ġˡ�

alias

�оݥơ��֥������̾�ΤǤ��� ��̾��Ϳ����줿��硢�ºݤΥơ��֥�̾�ϴ����˱��ä���ޤ��� ���Ȥ��С�DELETE FROM foo AS f��ͤ��ޤ��� ����DELETEʸ�λĤ����ʬ�ǤϤ��Υơ��֥��foo�ǤϤʤ�f�Ȥ��ƻ��Ȥ��ʤ���Фʤ�ޤ���

using_list

WHERE������¾�Υơ��֥�������Ĥ��뤿��Ρ��ơ��֥뼰�Υꥹ�ȤǤ��� ����ϡ�SELECTʸ��FROM���ˤ����ƻ���Ǥ���ơ��֥�Υꥹ�Ȥ�Ʊ�ͤǤ��� �㤨�С��ơ��֥�̾����̾����ꤹ�뤳�Ȥ��Ǥ��ޤ��� ���ʷ������ꤹ����Ū�ʳ��Ǥ�using_list���оݤΥơ��֥�򷫤��֤��ʤ��Ǥ���������

condition

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

cursor_name

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

output_expression

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

output_name

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

����

����˽�λ������硢DELETE���ޥ�ɤϰʲ��η����Υ��ޥ�ɥ������֤��ޤ���

DELETE count

count�Ϻ�������Կ��Ǥ��� count��0�ξ�硢condition���������Ԥ�¸�ߤ��ʤ��ä����Ȥ򼨤��ޤ� �ʤ���ϥ��顼�ȤϤߤʤ���ޤ���ˡ�

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

����

PostgreSQL�Ǥϡ�USING���¾�Υơ��֥����ꤹ�뤳�Ȥǡ�WHERE������¾�Υơ��֥�򻲾Ȥ��뤳�Ȥ��Ǥ��ޤ��� �㤨�С����ꤷ���ץ��ǥ塼������������ƤαDz����������ϡ����Τ褦�ʥ��ޥ�ɤ�¹Ԥ��ޤ���

DELETE FROM films USING producers
  WHERE producer_id = producers.id AND producers.name = 'foo';

�����Ǥϡ�films��producers�Ȥ��礷�ơ�films�Ԥ˺���Ѥΰ����դ���Ȥ�����Ȥ�ԤäƤ��ޤ��� ���ι�ʸ��ɸ��˽��ä���ΤǤϤ���ޤ��� ���ɸ��Ū����ˡ�ϰʲ����̤�Ǥ���

DELETE FROM films
  WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo');

���䤤��碌�������������������񤭰פ����¹Ԥ�®���ʤ뤳�Ȥ�����ޤ���

��

films�ơ��֥뤫��musical�ʳ������ƺ�����ޤ���

DELETE FROM films WHERE kind <> 'Musical';

films�ơ��֥����ˤ��ޤ���

DELETE FROM films;

��λ������ȡ�status��DONE�ˤ�������������줿�Ԥ������֤��ޤ���

DELETE FROM tasks WHERE status = 'DONE' RETURNING *;

tasks�ˤ�����c_tasks�������뤬���߰��֤��Ƥ���Ԥ������ޤ���

DELETE FROM tasks WHERE CURRENT OF c_tasks;

�ߴ���

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