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

16.6. �롼���Хȥꥬ

�ȥꥬ�ˤ�äƹԤ���¿�������� PostgreSQL�Υ롼�륷���ƥ�Ǽ�����ǽ�Ǥ������߼ºݤ˥롼��Ǽ����Ǥ��ʤ���ΤϤ���������˴ؤ��ƤǤ����⤷¾�Υơ��֥������ͤ��ʤ��ä���硢���롼����䤤��碌��NOTHING�˽񤭴����Ƥ��ޤ����Ȥ��ǽ�Ǥ���������Ǥϥǡ��������ޤäƾõ��Ƥ��ޤ����褤�����ǥ����ȤϤ����ޤ���ͭ�����ͤ��ɤ����Υ����å���ɬ�פǡ�̵�����ͤˤĤ��Ƥϥ��顼��å�������ɽ������ɬ�פ�����ʤ顢���Τ��ȤϺ��ΤȤ����ȥꥬ��ȤäƹԤ�ʤ���Фʤ�ޤ���

�������ӥ塼���INSERT�ˤ�äƵ�ư���줿�ȥꥬ�ϡ��ǡ�����ɤ��������򤵤����ӥ塼�ؤ�������ػߤ���롼���Ʊ�����Ȥ��Ǥ��ޤ���������UPDATE�ޤ���DELETE�Ǥϥ�����󤵤��¥ǡ������ӥ塼��졼������¸�ߤ��ʤ��Τǥȥꥬ���ƤФ�뤳�Ȥ��ʤ�������㤷�Ƥ��ޤ����롼��Dz�褹�뤷������ޤ���

������ˤ�äƤ��������뤳���ε�ǽ�˴ؤ��Ƥɤ��餬�٥��Ȥ��ϥǡ����١����λ���ˡ�ˤ��ޤ����ȥꥬ�ϤɤιԤˤ������Ƥ���٤�����ư���ޤ����롼��ϥѡ����ĥ꡼�����뤫�ɲäΥѡ����ĥ꡼���������ޤ����Ǥ����顢1�Ĥ�̿��ʸ��¿���ιԤ˱ƶ���Ϳ�����硢1�ĤιԤ�������뤿�Ӥ˸ƤӽФ��졢���μ¹Ԥ򲿲��Ԥ�ʤ���Фʤ�ʤ��ȥꥬ���⡢1�Ĥ��̤��䤤��碌��ȯ�Ԥ���롼��Τۤ����̾�褤Ư���򤷤ޤ���

���Ȥ��С�2�ĤΥơ��֥뤬����Ȥ��ޤ���

CREATE TABLE computer (
    hostname        text,    -- indexed
    manufacturer    text     -- indexed
);

CREATE TABLE software (
    software        text,    -- indexed
    hostname        text     -- indexed
);

2�ĤΥơ��֥�ˤ϶��˿���ιԤ����äơ�hostname��κ����ϰ�դǤ���hostname����ˤϥ���ԥ塼����FQDN�����Хɥᥤ��̾�ˤ�����ޤ����롼��/�ȥꥬ�Ϻ�����줿�ۥ��Ȥ򻲾Ȥ��롢software�ˤ�����Ԥκ�������¤��ʤ���Фʤ�ޤ��󡣥ȥꥬ��computer ���������줿���줾�����Ω�����ԤǸƤӽФ���ޤ��Τǡ��ʲ��Τ褦��̿��ʸ�򡢽���������¸���줿�ײ����ǻ��Ѥ����ѥ�᡼����� hostname ������Ϥ����Ȥ��Ǥ��ޤ���

DELETE FROM software WHERE hostname = $1;

���ΤȤ��Υ롼��ϰʲ��Τ褦�˽�ɽ�����Ȥ��Ǥ��ޤ���

CREATE RULE computer_del AS ON DELETE TO computer
    DO DELETE FROM software WHERE hostname = OLD.hostname;

�����ǡ��ۤʤä�����κ���ˤĤ��Ƹ��Ƥߤޤ��礦��

DELETE FROM computer WHERE hostname = 'mypc.local.net';

���ξ�硢�ơ��֥�computer�ϥ���ǥå����ǥ�����󤵤�ʹ�®�Ǥ��ˡ��ȥꥬ�ˤ�ä�ȯ�Ԥ��줿�䤤��碌��Ʊ�ͥ���ǥå����������Ȥʤ�ޤ��ʤ�����®�Ǥ��ˡ��롼�뤫������̤��䤤��碌�ϰʲ��Τ褦�ˤʤ�ޤ���

DELETE FROM software WHERE computer.hostname = 'mypc.local.net'
                       AND software.hostname = computer.hostname;

�����ˤ�Ŭ�ڤʥ���ǥå������Ѱդ���Ƥ���Τǡ��ץ��ʤϰʲ��ηײ���������ޤ���

�ͥ��ȥ롼��
  ->  computer ��� comp_hostidx ��Ȥä�����ǥå����������
  ->  software ��� soft_hostidx ��Ȥä�����ǥå����������

�ȥꥬ�ȥ롼������δ֤ǽ���®�٤κ��Ϥ���ۤɤϤʤ��Ǥ��礦�����κ�������Ǥ�hostname����old�פǻϤޤ�2,000�椹�٤Ƥ� computer�������褦�Ȼפ��ޤ�����ˡ�Ȥ���2�Ĥ�ͭ�����䤤��碌�����äơ�1�Ĥ� �ʲ��Τ褦�ʤ�ΤǤ���

DELETE FROM computer WHERE hostname >= 'old'
                       AND hostname <  'ole'

�������䤤��碌�Υ롼����Ф���ײ�ϰʲ��Τ褦�ʤ�ΤǤ���

�ϥå�����
  ->  software ��ǽ祹�����
  ->  �ϥå���
    -> computer ��� comp_hostidx ��Ȥä�����ǥå����������


�⤦1�Ĥβ�ǽ���䤤��碌�ϰʲ��Τ褦�ʤ�ΤǤ���

DELETE FROM computer WHERE hostname ~ '^old';

����ϰʲ��μ¹Էײ����äƤ��ޤ���

�ͥ��ȥ롼��
  ->  computer ��� comp_hostidx ��Ȥä�����ǥå����������
  ->  software ��� soft_hostidx ��Ȥä�����ǥå����������   


���줬�����Ƥ��뤳�Ȥϡ��ץ��ʤϡ�regexp�С������ǤϹԤä���AND �Ƿ�礵�줿ʣ���θ�����郎¸�ߤ�����computer���hostname ���Ф��븡�����ǡ�software��Υ���ǥå����������ˤ�Ʊ�ͤ˻��ѤǤ��뤳�Ȥ򡢤狼�äƤ��ʤ��Ȥ������ȤǤ����ȥꥬ�Ϻ�������٤�2,000��ε켰����ԥ塼���Τ����줫�ˤ�ä�1��ƤӽФ��졢���computer���1��Υ���ǥå�����������software���Ф���2,000��Υ���ǥå���������󤬹Ԥ��ޤ����롼��μ����Ǥϥ���ǥå������2�Ĥ��䤤��碌�ˤ�äƼ¹Ԥ���ޤ����༡�������ξ��Ǥ�롼�뤬���®�����ɤ�����software�ơ��֥���礭���˰�¸���ޤ������Ȥ��뤹�٤ƤΥ���ǥå����֥��å����֤�ʤ�����å���˸����Ȥ��Ƥ⡢SPI�ޥ͡�������Ф���2,000����䤤��碌�μ¹Ԥˤϻ��֤��פ��ޤ���

�Ǹ���䤤��碌�򸫤Ƥߤޤ��礦��

DELETE FROM computer WHERE manufacurer = 'bim';

����ʸ�Ǥ�computer���餿������ιԤ����������̤Ȥʤ�ޤ��������Ǥ�ȥꥬ�ϥ��������塼����¿�����䤤��碌��ȯ�Ԥ��뤳�Ȥˤʤ�ޤ����롼��ײ��ޤ�����Ʊ��2�ĤΥ���ǥå����������Υͥ��ȥ롼�פȤʤ�ޤ���computer���̤Υ���ǥå�����Ȥ��С��ʲ��Τ褦�ˤʤ�ޤ���

   �ͥ��ȥ롼��
      ->  computer ���Ф��� comp_manufidx ����Ѥ�������ǥå����������
      ->  software ���Ф��� soft_hostidx ����Ѥ�������ǥå���������� 

�����Υ롼���䤤��碌�η�̤ϡ��ʲ��Τ褦�ʤ�ΤǤ���

DELETE FROM software WHERE computer.manufacurer = 'bim'
                       AND software.hostname = computer.hostname;

������ξ��ˤ����Ƥ⡢�롼�륷���ƥब��������;ʬ���䤤��碌�ϱƶ��������Կ������¿���쾯�ʤ�����Ω���Ƥ��ޤ���

�̤ξ����Ȥ��ơ�����������¹Ԥ��٤����ݤ����ѹ����줿°���˰�¸���롢UPDATE�ξ�礬����ޤ���PostgreSQL 6.4�Ǥϡ��롼�륤�٥�Ȥˤ�����°������ϤǤ��ʤ��ʤäƤ��ޤ����٤��Ȥ�6.5���뤤�Ϥ⤦�����᤯�˻Ȥ���褦�ˤʤ�Ǥ��礦�����Ф餯���Ԥ��������ˡ��������äơ���������shoelace_log����Τ褦�ʥ롼����������ͣ�����ˡ�ϡ��롼�������Ѥ��뤳�ȤǤ��������䤤��碌����Ū�ꥹ�Ȥ˽ФƤ��ʤ����ᡢ������оݤȤ���°�����ѹ�����ʤ��Ƥ��˼¹Ԥ�������̤��䤤��碌�Ȥʤ�ޤ������ٻȤ���褦�ˤʤä����ϥȥꥬ���Ф���롼��Τ⤦1�Ĥζ��ߤˤʤ�ޤ������ξ�硢�ȥꥬ�κ�Ŭ���Ϥ�������ˤ���Բ�ǽ�Ǥ��������°�����ѹ����줿�Ȥ��ˤΤߤ��Υ���������Ԥ��Ȥ����������ΤϤ��Ρʥȥꥬ�˴ؿ������˱�����Ƥ��뤫��Ǥ����ȥꥬ������Ϲԥ�٥�Τߤ��Ф���ǧ�����Τǡ��Ԥ�������ȥȥꥬ�����꤬������褦�˥ȥꥬ���ƤӽФ���ʤ���Фʤ�ޤ��󡣥롼�륷���ƥ�ξ����оݥꥹ�Ȥ򸡺����뤳�Ȥ��ѹ����줿���ɤ����狼��ޤ��Τǡ�°���������Ƥ��ʤ���Ф��θ���䤤��碌�򤹤٤���ߤ��뤳�Ȥ��Ǥ��ޤ�������̵ͭ�ˤ�����餺���롼��ϼ¹Ԥ��ʤ���Фʤ�ʤ����Ȥ�����Х�������¹Ԥ��ޤ���

�䤤��碌��̤��礭�����ץ��ʤ����ޤ�����������Ǥ��ʤ��褦�ʾ������ǤΤߥ롼��ϥȥꥬ����٤����餫���٤��ʤ�ޤ����롼����礭�ʶ��ȤΤ褦�ʤ�Τǡ����դ��դ�������򤷤ޤ������ޤ��Ȥ��Фɤ��ţ�Ǥ⤦�ޤ��Ǥ������ΤǤ���