PostgreSQL �� �C���f�b�N�X�E�I�����[�E�X�L����

PostgreSQL �ł� 9.2 ���� �C���f�b�N�X�E�I�����[�E�X�L�������g����悤�ɂȂ��Ă��܂��B

���̋@�\�� �f�[�^���擾����ۂɁA�C���f�b�N�X�����Ŏ������ꍇ�� �C���f�b�N�X�݂̂��g�p����Ƃ������̂ł��B Oracle �ł͐̂��炠��܂����� PostgreSQL �ł� 9.2 �����������܂����B

�ʏ�́A�����ɃC���f�b�N�X���g�p���Ă��A�e�[�u������f�[�^���擾���邽�߂� �ʂ̗̈�i�q�[�v�j��ǂ݂ɍs���킯�ł����A���ꂪ�s�v�ɂȂ邽�߃p�t�H�[�}���X�̌���� ���Ȃ���҂ł��镔��������܂��B

�����APostgreSQL�͒NjL�^�̃f�[�^�x�[�X�Ȃ̂� �C���f�b�N�X�����ł� �Â��f�[�^���ǂ������f�ł��Ȃ����߁A�C���f�b�N�X�E�I�����[�E�X�L�����̎����� ����Ƃ���Ă��܂����B ����� 8.4 �Ńo�L���[���̂��߁H�ɒlj����ꂽ �r�W�r���e�B�}�b�v �Ƃ����f�[�^���g���āu�C���f�b�N�X�����ő��v���v�𔻒f���Ă��邻���ł��B

�Ȃ̂ŁA�C���f�b�N�X�E�I�����[�E�X�L�����Ƃ����Ă��A�ꍇ�ɂ���Ă̓e�[�u���̃f�[�^��ǂ݂ɍs���K�v������܂��B �X�V�������e�[�u���ł͓����������܂���B

�O�Ōo�����ł����肪�����ł����A�r�W�r���e�B�}�b�v���Y��ɁH�Ȃ�悤�Ƀo�L���[�����d�v�ł��B

���s�v�������Ǝ��̂悤�ɂȂ�܂��B
�i field1 ���e�[�u���̎�L�[�j

psql=# EXPLAIN
psql-# SELECT field1 FROM table1
psql-# WHERE field1 > 300000

Index Only Scan using table1_pkey on table1  (cost=0.43..
  Index Cond: (field1 > 300000)

Index Only Scan �Əo�͂���܂��B

�R�}���h�v�����v�g�� FOR �R�}���h�̏o�͂��܂Ƃ߂�

FOR �R�}���h�͏������J��Ԃ����Ƃ��ł��܂��B

���̃T���v���́Aaaaa.txt �̓��e���s���Ƃ� �_�u���N�H�[�e�[�V�����ň͂�ŏo�͂��Ă��܂��B

C:\> FOR /F %I IN (aaaa.txt) DO @ECHO "%I" >> bbbb.txt

����͎��̂悤�ɏ������Ƃ��ł��܂��B

C:\> (FOR /F %I IN (aaaa.txt) DO @ECHO "%I") > bbbb.txt

�������邱�ƂŁA�t�@�C������ɂ��鏈�����s�v�ɂȂ����� �����̑��x���オ�����肵�܂��B

Oracle �̃}���`�e�[�u���E�C���T�[�g

�ŋ߂� PostgreSQL �̋@�\���[�����Ă��܂����� Oracle �ɂ͂܂��܂��Ǝ��̋@�\���c���Ă��܂��B

����́A�O�������}���`�e�[�u���E�C���T�[�g�ɂ‚��āB

���̂悤�� INSERT�����܂Ƃ߂邱�Ƃ��ł��܂��B

SQL> INSERT ALL
  2    INTO table1 (field1, field2) VALUES ('xxxxx1', 'xxxxxxxxx')
  3    INTO table1 (field1, field2) VALUES ('xxxxx2', 'xxxxxxxxx')
  4    INTO table1 (field1, field2) VALUES ('xxxxx3', 'xxxxxxxxx')
  5  SELECT * FROM DUAL;

�܂Ƃ߂邾���łȂ������̃e�[�u���� INSERT �ł��܂��B

SQL> INSERT ALL
  2    INTO table1 (field1, field2) VALUES ('xxxxx1', 'xxxxxxxxx')
  3    INTO table2 (field1, field2) VALUES ('xxxxx2', 'xxxxxxxxx')
  4    INTO table3 (field1, field2) VALUES ('xxxxx3', 'xxxxxxxxx')
  5  SELECT * FROM DUAL;

������ DUAL �ɋC�Â����ł��傤���H

  5  SELECT * FROM DUAL;

�����ɂ̓e�[�u���╟�₢���킹���w�肷�邱�Ƃ��ł��܂��B

�‚܂� ���̂悤�Ȃ��Ƃ��ł��Ă��܂��킯�ł��B

SQL> INSERT ALL
  2    INTO table1 (field1, field2) VALUES (fieldA, fieldB)
  3    INTO table2 (field1, field2) VALUES (fieldA, fieldC)
  4    INTO table3 (field1, field2) VALUES (fieldA, fieldD)
  5  SELECT * FROM table4;

����ɏ������w�肷�邱�Ƃ��ł��܂��B

SQL> INSERT ALL
  2    WHEN fieldB < 10 THEN
  3      INTO table1 (field1, field2) VALUES (fieldA, fieldB)
  4    WHEN fieldC < 10 THEN
  5      INTO table2 (field1, field2) VALUES (fieldA, fieldC)
  6    WHEN fieldD < 10 THEN
  7      INTO table3 (field1, field2) VALUES (fieldA, fieldD)
  8  SELECT * FROM table4;

����ς� Oracle �͋��낵���ł��ˁB

Oracle �ł� 1��� SQL �ŕ����s INSERT ����

PostgreSQL �� MySQL �ł͎��̂悤�� INSERT ���� �����s���w�肷�邱�Ƃ��ł��܂��B

psql=# INSERT INTO table1 (field1, field2)
psql-#   VALUES ('xxxxx1', 'xxxxxxxxx')
psql-#        , ('xxxxx2', 'xxxxxxxxx')
psql-#        , ('xxxxx3', 'xxxxxxxxx');

Oracle �ł͂��̏��������ł��܂���B

�ȉ��̂悤�ɏ����܂��B

SQL> INSERT ALL
  2    INTO table1 (field1, field2) VALUES ('xxxxx1', 'xxxxxxxxx')
  3    INTO table1 (field1, field2) VALUES ('xxxxx2', 'xxxxxxxxx')
  4    INTO table1 (field1, field2) VALUES ('xxxxx3', 'xxxxxxxxx')
  5  SELECT * FROM DUAL;

�P�� INSERT�����܂Ƃ߂������̂悤�ł��� ���̏������́A�قȂ�e�[�u���ł��܂Ƃ߂邱�Ƃ��ł��܂��B �}���`�e�[�u���E�C���T�[�g �ƌ����̂ł��� �P�� INSERT ���܂Ƃ߂邾���ł͂���܂���B

�ڂ����͎���B

�R�}���h�v�����v�g�� DIR �R�}���h�Ńt�@�C�������o�͂���

�R�}���h�v�����v�g�� DIR �R�}���h�� �t�@�C���������o�͂���Ƃ��� �u/A�v�I�v�V�����Łu�f�B���N�g���ȊO�v���w�肵�܂��B

C:\> DIR /A:-D

�C�O�̊當���݂����ɂȂ��Ă܂��� �uD�v���f�B���N�g���ŁA�u-�v���Z�Z�ȊO�ɂȂ�܂��B

�R�����͏ȗ����邱�Ƃ��ł��܂��B

C:\> DIR /A-D

�u/B�v�I�v�V������t���ăt�@�C���������A �Ȃ�Ă��Ƃ��ł��܂��B

C:\> DIR /A:-D /B

Google �T�C�g������

Amazon�A�\�V�G�C�g