PostgreSQL(ݥȥ쥹塼)ˤĤƤ褯Ȥβ(FAQ)

ʸǽ: Tue Sep 9 18:42:51 EDT 2003

ߤΰݻ: Bruce Momjian (pgman@candle.pha.pa.us)
Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)

ʸκǿǤ http://www.PostgreSQL.org/docs/faqs/FAQ.html Ǹ뤳Ȥ
ޤ

ץåȥۡͭμˤĤƤ: http://www.PostgreSQL.org/docs/index.html
˲ޤ

(ʲԤˤ [  ] ȤǰϤǵޤ)
[
        ܸˤĤƤΥϺǸذưޤ

        ܸǤΤʸ ܲ "Docs"   "Frequently Asked Questions" 
        Ȥ "Japanese FAQ" ȤФǤޤޤʲΥȤˤ
        ޤ
                http://www.PostgreSQL.jp/subcommittee/jpugdoc/
                http://www.rccm.co.jp/~juk/pgsql/
                http://www.linux.or.jp/JF/

        ˤĤƤŤ(juk at PostgreSQL.jp)ޤǥ᡼Ǥ󤻲

                                                2003ǯ0920    ¼ 
]

 

                                 Ūʼ                                  
                                                                               
1.1) PostgreSQLȤϲǤɤߤޤ
1.2) PostgreSQLϤɤʤäƤޤ
1.3) PostgreSQLưUnixץåȥۡϡ
1.4) UnixʳΰܿǤǻȤΤϡ
1.5) PostgreSQLϤɤǤޤ
1.6) ݡȤϤɤǼޤ
1.7) ǿǤϤɤǤ
1.8) ɤΤ褦ʸ񤬤ޤ
1.9) ΤΥХ̵̤ǽϤɤäƸĤޤ
1.10) SQLϤɤгؤ٤ޤ
1.11) PostgreSQL2000ǯ(Y2K)бƤޤ
1.12) ȯˤϤɤΤ褦˻äޤ
1.13) ХݡȤϤɤΤ褦ȯޤ
1.14) ¾DBMSΤ٤PostgreSQLϤɤʤΤǤ
1.15) PostgreSQL̤ǱˤϤɤФ褤Ǥ

                         桼饤Ȥμ                          
                                                                               
2.1) PostgreSQL  ODBC ɥ饤СϤޤ
2.2) PostgreSQL  Web ڡϢȤˤϤɤʥġ뤬ޤ
2.3) PostgreSQL ˥ե롦桼󥿡եϤޤ
2.4) ɤΤ褦ʸ PostgreSQL ̿Ǥ

                                 μ                                  
                                                                               
3.1) ɤΤ褦ˤ /usr/local/pgsql ʳξ˥󥹥ȡǤޤ
3.2) postmaster 餻ȡ Bad System Call ȤפȤΥå
ФޤʤǤ
3.3) postmaster 餻褦Ȥȡ IpcMemoryCreate 顼ФޤʤǤ

3.4) postmaster餻褦Ȥȡ IpcSemaphoreCreate 顼Фޤʤ

3.5) ¾ΥۥȤ³ϤɤΤ褦椷ޤ
3.6) ɤǽ뤿ˤϡǡ١󥸥ɤΤ褦Ĵ
Ǥ
3.7) ɤΤ褦ʥǥХǽȤޤ
3.8) ³褦ȤȤ 'Sorry, too many clients' ФΤϤʤǤ
3.9) pgsql_tmp ǥ쥯ȥˤϲޤ
3.10) PostgreSQLΥ᥸㡼꡼򥢥åץǡȤΤ˥פȥꥹȥ򤷤
ƤϤʤʤΤϤʤǤ

                                 μ                                  
                                                                               
4.1) Хʥꡦ̾參Ȥΰ㤤ϲǤ
4.2) ǽοΤߤ select ˤϤɤޤʹԡ
4.3) ơ֥䤽¾ξΥꥹȤ psql ǸˤϤɤޤ
4.4) ơ֥뤫饫κ뤤ϡǡѹˤϤɤޤ
4.5) ơ֥롢ǡ١κ祵ϡ
4.6) Ūʥƥȥե뤫ǡ¸ˤϡǡ١Υǥ
̤ϤɤΤ餤ɬפǤ
4.7) 줿ơ֥롢ǥåǡ١ӡ桼ɤΤ褦
ƸĤФޤ
4.8) 䤤碌٤ǥåȤäƤͻҤޤ󡣤ʤǤ

4.9) 䤤碌֥ƥޥɤΤ褦䤤碌ɾ뤫򸫤ˤϤɤ
ޤ
4.10) R-tree ǥåȤϲǤ
4.11) Ū䤤碌ŬȤϲǤ
4.12) ɽǤθʸȾʸȤ̤ʤɽϤɤΤ褦˼
ޤʸȾʸȤ̤ʤΤΥǥåϤɤΤ褦˻
ޤ
4.13) 䤤碌ǡեɤ NULL Ǥ뤳Ȥ򸡽ФˤϤɤޤ

4.14) ʸΤ줾ΰ㤤ϲǤ
4.15.1) (serial)ưʬեɤϤɤΤ褦ˤĤޤ
4.15.2) SERIALǡͤϡɤޤ
4.15.3) ¾Υ桼Ȥζ֤򤱤뤿ˤϡcurrval()  nextval() ϻȤ
ۤ褤ΤǤ礦
4.15.4) ȥ󥶥ǤȤˤ⤦ɥֹ椬Ȥʤ
ϤʤǤ󥹡SERIAL˶ΤϤʤǤ
4.16) OID ȤϲǤ TID ȤϲǤ
4.17) PostgreSQL ǻȤ뤤ĤѸΰ̣ϲǤ
4.18) 顼å "ERROR: Memory exhausted in AllocSetAlloc()"ФΤϤ
Ǥ
4.19) ɤΥС PostgreSQL 餻ƤΤĴ٤ˤϤɤޤ
4.20) 顼֥Ȥǡinvalid large obj descriptorȽФΤϤʤ

4.21) ߤλ郎ǥեȤȤʤ褦ʥϤɤΤ褦ˤĤޤ
4.22) ʤINȤ䤤碌ȤƤ٤ΤǤ
4.23) (outer join)ϤɤΤ褦˼¸ޤ?
4.24) ʣΥǡ١Ȥ䤤碌ϤɤΤ褦ˤФǤޤ
4.25) ؿʣΥޤϥ֤ˤϤɤޤ
4.26) ʤPL/PgSQL ؿ椫ơ֥μ¤ create/drop 뤳Ȥ
ʤΤǤ礦
4.27) ɤΤ褦ʥץꥱ󥪥ץѤǤޤ?
4.28) ɤΤ褦ʰŹ沽ץѤǤޤ?

                        PostgreSQLγĥˤĤƤμ                         
                                                                               
5.1) ʬǽ񤤤桼ؿ psql Ǽ¹ԤȥפƤޤ
ϤʤǤ
5.2) PostgreSQL Ѥ˽񤤤äŨʿؿ󶡤ƥץȤ
׸ΤǤ
5.3) ץ֤ CδؿϤɤΤ褦˽񤭤ޤ
5.4) եѹޤƥѥ뤷ƤѲʤΤϤʤ
Ǥ

 

                                 Ūʼ                                  
                                                                               
1.1) PostgreSQL ȤϲǤɤߤޤ

Post-Gres-Q-L.(ݥ - 쥹 - 塼 - ) ȯޤ

PostgreSQL ϼ DBMS ѤΥץȥפǤä POSTGRES ǡ١
ƥβǤǤPostgreSQL  POSTGRES ζϤʥǡǥ˭٤ʥǡ
()ݻʤ顢POSTGRES ǻȤ줿 PostQuel 䤤碌򡢳
ĥ SQL Υ֥åȤ֤ƤޤPostgreSQL ̵Ǵʥ
ѤǤޤ

PostgreSQL γȯϡPostgreSQL ȯ᡼󥰥ꥹȤ˻äƤ볫ȯãΥ
Ǥ٤ƹԤʤƤޤߤκĹ Marc G. Fournier (
scrappy@PostgreSQL.org )Ǥ(1.6˻äλޤ)ߡΥ
ब PostgreSQL ȯΤ٤ƤݤߤƤޤ

Postgres95-1.01 濴ŪʳȯԤ Andrew Yu  Jolly Chen Ǥ¾
ο͡ΥɤΰܿƥȡǥХӡɤ˻äޤ
PostgreSQL ɤǤ POSTGRES ϥե˥إС쥤ˤ
ơ Michael Stonebraker λشΤȡ¿γ´ܿΥץ
Ϥˤޤ

С쥤ˤ뤳ΥեȥΤȤ̾ Postgres ǤSQL εǽ
ɲä줿 1995 ǯˤ̾ Postgres95 ѹ졢1996 ǯνˤ̾
 PostgreSQL ѹޤ

1.2) PostgreSQL ϤɤʤäƤޤ

PostgreSQL ϲ˽ޤ

    [
        ʸϱѸǤͤȤơʸʻǺܤޤ
    ]

PostgreSQL Data Base Management System

Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group Portions
Copyright (c) 1994-6 Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement is
hereby granted, provided that the above copyright notice and this paragraph and
the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

        POSTGRESQL ǡ١ƥ

        ʬŪ (c) 1996-2002, PostgreSQLݳȯ
        ʬŪ (c) 1994-6 ե˥ܹ


          ܥեȥӤʸ켰Ͼ嵭ɽȡʸ
        Ӥ³ĤƤʣźդƤ¤ˤ
        ơѡʣդεĤ򡢤ʤŪǤä⡢̵
        ǤƱս̵˹Ԥʤ뤳Ȥ򤳤ǧޤ
        
          ե˥ؤϡʤԤˤƤ⡢פβ
        ޤࡢľŪŪ̡뤤ɬŪˤ餺
        »ˤĤơȤե˥ؤ»ˤĤ
        ƤȤƤ⡢ڤǤ餤ޤ
        
          ե˥ؤϡŪˤۤݾڤȡŪ
        Ŭ˴ؤƤϤȤꡢ˸¤餺ʤݾڤ
        뤳ȤޤʲѰդ줿եȥϡ֤Τޤޡפ
        ܸȤե˥ؤϤݻٱ硢ɤ
        뤤Ͻ̳餤ޤ

    [
        ˴ؤʸϾ嵭αѸˤɽǤܸϤޤ
        ͤǤ
    ]

嵭BSD饤󥹤ǸŤץ󥽡Υ饤󥹤ǤɤɤΤ褦
˻Ȥ褦Ȥ¤ޤ󡣹ޤȤʤΤǡ桹⤽ѤĤϤ
ޤ

1.3) PostgreSQL ưĶϡ

ŪˡǶUnixߴץåȥۡʤPostgreSQLϤ餻ϤǤ
꡼λǼºݤ˥ƥȤԤʤäȤ𤬤ʤ줿ץåȥۡˤ
Ƥϥ󥹥ȡ󤷤Ƥޤ

1.4) UnixʳΰܿǤǻȤΤϡ

饤

MS Windows ץåȥۡ뤿ˡlibpq C 饤֥ꡢpsql¾Υ
󥿡եӡ饤ȥץꥱ򥳥ѥ뤹뤳Ȥϲǽ
Ǥξ硢饤Ȥ MS Windows 餻ơTCP/IP ͳǥݡȤ
Ƥ Unix ץåȥۡ륵Ф̿ޤ

Win32 libpq 饤֥ psql 뤿ˡwin32.mak ۤ˴ޤޤƤޤ
PostgreSQL ODBC 饤ȤȤ̿Ǥޤ



ߡCygnus Unix/NT ܿ饤֥ Cygwin ȤäơPostgreSQL ǡ١
Ф Windows NT  Win2k ǲƯƤޤۤ˴ޤޤpgsql/doc/
FAQ_MSWIN뤤ϡ http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWINˤ
MS Windows FAQ 

MS Win NT/2000/XP ͥƥǤؤΰܿ߿ʹǤäȾܤWindows
PostgreSQLζᶷϡhttp://techdocs.postgresql.org/guides/Windows http://
momjian.postgresql.org/main/writings/pgsql/win32.html 򸫤Ƥ


[

Win32ͥƥ(Win32 Native version)

          Windows-Native С & 饤ȥѥåƣˤ
        ݻƤޤ
            http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
        (Windows-Native Server&Client Package for PostgreSQL by Hiroshi Saito)
            http://hp.vector.co.jp/authors/VA023283/PostgreSQLe.html



]

1.5) PostgreSQL ϤɤǤޤ

PostgreSQL 縵 anonymous ftp Ȥ ftp://ftp.PostgreSQL.org/pub/ Ǥ
ߥ顼ȤˤĤƤϡ桹Υᥤ Web ڡ

    [:

        ʲܤΥߥ顼ȤǤ:

       Japan: ftp://mirror.nucba.ac.jp/mirror/PostgreSQL/pub/
       Japan: ftp://ring.ip-kyoto.ad.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.crl.go.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.saitama-u.ac.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.astem.or.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.exp.fujixerox.co.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.jah.ne.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.etl.go.jp.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.asahi-net.or.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.so-net.ne.jp/pub/misc/db/PostgreSQL/
       Japan: ftp://ring.aist.go.jp/pub/misc/db/PostgreSQL/
    ]

1.6) ݡȤϤɤǼޤ

פʥ᡼󥰡ꥹȤ: pgsql-general@PostgreSQL.orgǤPostgreSQL ˴ؤ
뤳ȤǤеǤޤΥꥹȤؤλäΤϡŻҥ᡼ʸ(Subject
ԤǤϤޤ)˼ΣԤ񤤤ơ

        subscribe
        end

pgsql-general-request@PostgreSQL.org äƲ

ǤΥ᡼󥰡ꥹȤ⤢ޤΥꥹȤؤλä "ʸ"ˡ

        subscribe
        end

Ƚ񤤤 pgsql-general-digest-request@PostgreSQL.org Żҥ᡼äƲ


ǤϡᥤꥹȤǼå 30k ί˥
ǥꥹȤΥСդޤ

ХݡѤΥ᡼󥰥ꥹȤ⤢ޤΥꥹȤؤλä "ʸ"Ȥä
ˡ bugs-request@PostgreSQL.org Żҥ᡼äƲ

ȯԤεΤΥ᡼󥰥ꥹȤѤǤޤΥꥹȤؤλäŻҥ
ʸˡ

        subscribe
        end

Ƚ񤤤ơpgsql-hackers-request@PostgreSQL.orgŻҥ᡼äƲ

http://www.PostgreSQL.org

EFNet  OpenProjects  #PostgreSQL Ȥ IRC ͥ⤢ޤ UNIX 
ޥɤirc -c '#PostgreSQL' "$USER" irc.phoenix.net ȤäƤޤ

    [:
          1999ǯ723PostgreSQL桼(ˤۤ ݤȤ줹 桼 )άJPUG
        ΩޤJPUG ȿǡPostgreSQLѤã߶ϤξȤʤäƤޤ  
        2003ǯ517ʤäơPostgreSQL桼פ̾Τޤ
        β̵ǤβȲѶŪʹ׸αĤƤޤ
        ܤϡJPUG Web :
                http://www.PostgreSQL.jp/
        ϿǽȤʤäƤޤ
          1990ǯ椴ꡢݥȥ쥹ܸ᡼󥰡ꥹȤа ãפ󤬼ŤƤޤܺ٤ϡ
                http://www.sra.co.jp/people/t-ishii/PostgreSQL/ML/info.html
        ֤򡢤來ꤵpgsql-jp MLƥ
                http://datula.mio.org/~iwakiri/pgsql_jp/
        Ǹ뤳ȤǤޤ
        ]

ѥݡȲҤΥꥹȤhttp://techdocs.postgresql.org/companies.phpˤ


    [:
         ܤǤϡSRA Inc. ץ󥷥ƥ ˤƾѥݡȤԤʤƤޤ
        ߥ饯롦ʥå  "Miracle Linux for PostgreSQL" ȥݡȤ
        Ϥޤ
    ]

1.7) ǿǤϤɤǤ

PostgreSQL κǿǤϥС 7.3.4 Ǥ

桹ϡ68˥᥸㡼꡼ԤʤȤײ褷Ƥޤ

1.8) ɤΤ褦ʸ񤬤ޤ

դˡĤΥޥ˥奢ȥ饤󡦥ޥ˥奢(ޥ˥奢롦ڡ)
ӤĤξʥƥ꤬ޤޤޤ/doc ǥ쥯ȥޤ
ޥ˥奢ϡhttp://www.ca.PostgreSQL.org/docs/ǥ饤ǤǤޤ


    [:
        ʳSRAPostgreSQL桼졢
        PostgreSQL եޥ˥奢
        ȤƽǤƤޤ
    ]

饤ǻȤǤ PostgreSQL ܤ2ޤhttp://www.PostgreSQL.org/
docs/awbook.html

    [:
        ܥݥȥ쥹桼    PostgreSQL Bookʬʲ
        ˤޤ
    ]

ӡ http://www.commandprompt.com/ppbook/ ǤǽʽҤϿϡ
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php ˤޤ PostgreSQL
Ѿ󵭻⡢http://techdocs.PostgreSQL.org/ ˤޤ

[: ʸϡܥݥȥ쥹桼http://www.postgresql.jp/
document/ 򤴤󲼤 ]

psql ⡢黻ҡؿ󡢤¾ξ򤪸롢Ĥ餷
\d ޥɤޤ

桹 Web Ȥˤϡäʸ񤬤ޤ

1.9) ΤΥХ̵̤ǽϤɤäƸĤޤ

PostgreSQLϳĥ줿SQL-92Υ֥åȤ򥵥ݡȤޤ桹Υڡ TODO
ꥹȤˡΤΥХǽ侭ײˤĤƤεҤޤ

1.10) SQL Ϥɤгؤ٤ޤ

http://www.PostgreSQL.org/docs/awbook.html ˤPostgreSQLܤ SQL 򶵤Ƥ
ޤ

    [:
        ܥݥȥ쥹桼    PostgreSQL Bookʬʲ
        ˤǤƤޤ
    ]

¾ˤ PostgreSQLܤȤơhttp://www.commandprompt.com/ppbook ޤ
餷ϡhttp://www.intermedia.net/support/sql/sqltut.shtm, http://
ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, ơhttp://
sqlcourse.com ˤޤ

¾Ǥϡ "Teach Yourself SQL in 21 Days, Second Edition"  http://
members.tripod.com/er4ebus/sql/index.htmˤޤ

¿Υ桼ˡ The Practical SQL Handbook, Bowman Judith S. et al.,
Addison-Wesley ɾǤ¾ˡThe Complete Reference SQL, Groff et al.,
McGraw-Hill Τ褦ʤΤ⤢ޤ

    [:
         аã׻ˤܸλʸξҲڡ
                http://www.SRA.co.jp/people/t-ishii/PostgreSQL/doc-jp/index.html
        ޤ
         ƣľʸΡֽ鿴ԸΣģ߷硦ӣѣ绲ͽҲפΥʡ
                http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html
        ޤ
         ѱѻΡPostgreSQLܸޥ˥奢
                http://www.net-newbie.com/
        Ǥϥ饤ޥ˥奢θǤޤ
         ݻ׻UNIX ǡ١
                http://www.wakhok.ac.jp/DB/DB.html
        ⥪饤ɤळȤǤޤ
    ]

1.11) PostgreSQL2000ǯ(Y2K)бƤޤ

бƤޤ2000ǯդ⡢2000ǯդ⡢ñ˰
ޤ

1.12) ȯˤϤɤΤ褦˻äޤ

ޤǽ()ˡǿΥɤ桹 Web Ȥۤ˴ޤ
ƤPostgreSQL Developersʸɤߤޤܤˡpgsql-hackers 
pgsql-patches ᡼󥰡ꥹȤ(subscribe)ޤܤˡʼΥѥ
pgsql-patchesȯޤ

褽ͤäȤοãPostgreSQL CVS֤˥ߥåȤ븢¤ä
ޤΤ줾οãιʼʥѥåȯΤǡߥߥå
ȤʤäƤãϤɤդΤѤǤ桹餬ߥåȤѥå
ϹʼǤȳοƤޤ

1.13) ХݡȤϤɤΤ褦ȯޤ

http://www.PostgreSQL.org/bugs/bugs.phpPostgreSQL BugTool (Хġ)Υڡ
ˬƤߤƲХݡȤФˤĤƤμȻؿˤޤ

 http://PostgreSQL.orgˤǿ FAQ åƲ

Ʊ ftp  ftp://ftp.PostgreSQL.org/pub/ǡäȿС
 PostgreSQL 뤤ϥѥå򤵤ƤߤƲ

1.14) ¾DBMSΤ٤PostgreSQLϤɤʤΤǤ

եȥפˡˤϤĤޤǽǽȿȥݡȤȲ
Ǥ

ǽ(Features)
    PostgreSQLϡȥ󥶥䤤碌ȥꥬӥ塼
    ȡӡ줿åʤɡ絬ϾDBMSĵǽۤ
    ɻäƤޤ PostgreSQLϡ桼Ѿ롼롢줫
    å̾ޥСƱʤɡDBMS碌
    ʤ褦ʵǽ򤤤Ĥ碌Ƥޤ
ǽ(Performance)
    PostgreSQL¾ξѤ뤤ϥץ󥽡Υǡ١ȸ߳Ѥǽ
    ޤ̤ǤϤᤫäꡢ̤ۤǤϤ٤äꤷޤMySQLʤ
    òǡ١ƥˤ٤ơPostgreSQL٤Τ
    ȥ󥶥ˤ륪Сإåɤ뤫ǤMySQLˤϾ
    Features˼褦ʵǽϤޤäޤ󡣲桹ϡPostgreSQL
    ȵǽȤ߹ߤʤ⡢䤨ץե顼˳ݤ꥽
    ɤϤꤷơǽβ³ƤޤPostgreSQL  MySQL Ȥ
    ӤƤ Web ڡhttp://openacs.org/philosophy/
    why-not-mysql.htmlˤޤ
    PostgreSQLϡUnixץư뤳Ȥˤ桼³ޤʣ
    ΥХåɡץåʤǡХåեͭ
    ޤޥCPUǤϡñʣΥХåɤ򤽤줾CPU餻뤳
    Ǥޤ
(Reliability)
    桹ϡDBMSο⤯ʤƤϤβ̵ͤȤ򤷤Ƥޤʬ
    ȤơꤷɤХǾˤƤ꡼褦˶ФƤޤ
    줾Υ꡼ϾʤȤ1ʾΥ١ƥȤԤʤޤ
    Υ꡼򤬡ǤȤưꤷǤʥ꡼Ǥ뤳Ȥʪä
    ޤʬǤϡ¾Υǡ١٤Ƥ½ʤȤ˼
    Ƥޤ
ݡ(Support)
    桹Υ᡼󥰥ꥹȤϡ뤤ʤˤĤƤؤμ
    Ƥ롢ȯԤ桼礭ʽޤؤ󶡤Ƥޤ桹
    βݾڤ뤳ȤϤǤޤ󤬡ѥǡ١ǤäƤ˲褵
    櫓ǤϤޤ󡣳ȯԤ䡢桼ߥ˥ƥޥ˥奢ࡢ
    ɤʤɤľܥǤ뤳ȤäơPostgreSQLΥݡȤϡ
    ¾DBMSݡȤͥ줿ΤȤʤäƤޤ˾ơξ
    ѥݡȤʤɤ⤢ޤFAQ1.6ˡ
(Price)
    PostgreSQLѤϡѤǤѤǤ⡢٤̵Ǥ嵭˼ƤBSD
    λѵ˳ʤ¤ꡢPostgreSQLΥɤ̵ǾʤȤ
    ळȤǤޤ

1.15) PostgreSQL̤ǱˤϤɤФ褤Ǥ

PostgreSQLϡ桹Ϥ᤿ 1996ǯ衢ǹ⥯饹ξפäƤޤ
Ϥ٤ơMarc FournieΤǡϤδפǯˤ錄ä¤
Ƥޤ

ɤפϥץ󥽡ץȤˤȤäƤϤȤƤڤʤΤǡʤ
򼺤ץȤʬ򤷤ޤ

󡢤δפϰ¤ΤǤϤޤ󡣰ݻ³뤿ˤ뤤ϰ
η񤬤ޤ⤷ʤ䤢ʤβҤˡϤΤλ
뤿˻ܤȤǤ褦Ǥ顢https://store.pgsql.com/shopping/
դ򤪴ꤤޤ

ޤWebڡˤ PostgreSQL,Inc Ȥޤ"(contributions)"
ƥ PostgreSQL ץȤ򥵥ݡȤ뤿Τǡ褷β
ҤΤλΤǤϤޤ󡣤⤷(check)Թ礬褱Ϣ
νؤ겼

 

ˡ⤷PostgreSQLǤ򤪻ǤСҡλ㥵 
http://advocacy.postgresql.orgؤ꤯

                         桼饤Ȥμ                          
                                                                               
2.1) PostgreSQL Τ ODBC ɥ饤СϤޤ

PsqlODBC  OpenLink ODBC Ĥ ODBC ɥ饤СѲǽǤ

PsqlODBC ϼξ꤫ɤǤޤ http://gborg.postgresql.org/
project/psqlodbc/projdisplay.php

    [:
        ǿǤϰʤΥȤˤޤ
        http://w2422.nsk.ne.jp/~inoue/indexj.html
    ]

OpenLink ODBC  http://www.openlinksw.com/ǤޤɸŪ ODBC 
ȡեȥǻȤޤΤǡٱ礷Ƥ뤹٤ƤΥץåȥۡ(Win,
Mac, Unix, VMS) PostgreSQL  ODBC ѤǤޤ

֤ϡʼΥݡȤɬפʿ͡äƤȻפޤե꡼
ǤϤĤǤǽΤ褦Ǥϡpostgres95@openlink.co.uk ä


Programmer's Guide  ODBC ξϤ⤴

2.2) PostgreSQL  Web ڡϢȤˤϤɤʥġ뤬ޤ

ǡ١΢˻ Web ڡˤĤƤ餷Ҳ𤬡
http://www.webreview.comˤޤ

Web ؤγĥΤˤϡPHP ۤ󥿡եȤʤäƤޤhttp://
www.php.net/ˤޤ

    [:
          PHP˴ؤܸξϡ2000ǯ419ȯ­PHP桼Υ
                http://www.php.gr.jp/
        뤤ϡע वΥ
                http://www.geocities.jp/rui_hirokawa/php/
        ˤʤޤȤƤޤ
    ]

ʣʾ硢¿οͤ Perl 󥿡ե CGI.pm  mod_perl Ȥ
ޤ

    [:
        WDB ϡWeb  DataBase ؤ Perl  Interface Ǥ
        wdb-p95 ؤΥ󥯤ڤƤޤäƤޤ餯Perl DBI ͳ DBD::Pg ѤǽȻפޤ
        ߡWDBI Ȥ̾ˤʤäƤ
                http://www.egroups.com/list/wdb-users/
        ȡWDB̾ΤޤޤΤ
                http://www.i-con.dk/wdb/
        ȤޤηаޤϤ褯狼ޤ
    ]

2.3) PostgreSQL ˥ե롦桼󥿡եϤޤ

PostgreSQL ؤΥե륤󥿡եĤޤ
PgAccess http://www.pgaccess.com ޤޤޤ PgAdmin II (http://
www.pgadmin.org Win32-only)⤢ޤ RHDB Admin (http://sources.redhat.com/
rhdb/ ) Rekall ( http://www.thekompany.com/products/rekall/, proprietary)⤢
ޤ PHPPgAdmin ( http://phppgadmin.sourceforge.net/ ) PostgreSQLؤWeb
١Υ󥿡ե󶡤ޤ

PgAccess ȸƤФ餷ե롦桼󥿡եꡢ
ۤȶ˽в٤ޤPgAccess ˤϥݡȡͥ졼⤢ޤWeb ڡ
http://www.pgaccess.org/Ǥ

ܺ٤ʥꥹȤˤĤƤϡhttp://techdocs.postgresql.org/guides/GUITools 


2.4) ɤΤ褦ʸ PostgreSQL ̿Ǥ

͵ΤۤȤɤθPostgreSQLؤΥ󥿡եäƤޤʤ
Ȥץߥ󥰸γĥ⥸塼ΥꥹȤƤߤƤ

ʲΥ󥿡եPostgreSQLۤ˴ޤޤƤޤ

  C (libpq, libpgeasy)
  C (ecpg)
  Java (jdbc)
  Python (PyGreSQL)
  TCL (libpgtcl)

¾Ѳǽʥ󥿡ե http://www.PostgreSQL.org/interfaces.html
ӡ http://gborg.postgresql.org Drivers/InterfacesΥˤޤ


    [
        ʰ¸ˤ Palm Ǥ libpq ȯޤ
                http://www.snaga.org/libpq/
    ]

 

                                 μ                                  
                                                                               
3.1) ɤΤ褦ˤ /usr/local/pgsql ʳξ˥󥹥ȡǤޤ

ñˡϡ configure 餻Ȥ --prefix ץꤹ뤳ȤǤ


3.2) postmaster 餻ȡBad System Call ȤפȤΥå
ФޤʤǤ

ޤޤ꤬ͤޤޤǽˤʤΥͥ System V IPC γ
ĥ󥹥ȡ뤵Ƥ뤫ǧƸƤPostgreSQL ϥͥˤ
ͭ꡼ȥޥեΥݡȤɬפȤޤ

3.3) postmaster 餻褦ȤȡIpcMemoryCreate 顼ФޤʤǤ


ͥ뤬ͭ꡼ˤʤäƤʤäǤʤСͥ
ƻȤ붦ͭ꡼礭礭ꤹɬפޤŪ礭
ȤäƤ륢ƥpostmaster 餻ȤꤹХåեοȥ
åɥץ˰¸ޤۤȤɤΥƥǤϡͤΥХåե
ΤޤޤǡʤȤ1MBɬפǤ PostgreSQL Administrator's Gide ˶ͭ
꡼ȥޥեˤĤƤξξܺ٤ޤΤǤ

3.4) postmaster餻褦ȤȡIpcSemaphoreCreate 顼Фޤʤ


⤷顼åIpcSemaphoreCreate: semget failed (No space left on
device)ǤСͥ뤬ʬʥޥեȤ褦˹Ƥޤ
PostgresŪʥХåɥץ˰ĤΥޥեɬפȤޤȤꤢ
βpostmasterưȤˡХåɥץο꾯ʤ
¤򤹤뤳ȤǤͤ32꾮ʿΥѥ᡼-NǻȤޤ깱
ŪʲϡͥSEMMNS  SEMMNI ѥ᡼䤹ȤǤ

ǽΥޥե٤ʥǡ١δ֤˥å򵯤ǽ
ޤ

⤷顼åʤˤ¾ΤΤǤСͥιǤޤäޥ
ΥݡȤ򤷤Ƥʤ⤷ޤ PostgreSQL Administrator's Gide ˶ͭ
꡼ȥޥեˤĤƤξξܺ٤ޤ

3.5) ¾ΥۥȤ³ϤɤΤ褦椷ޤ

ͤǤϡPostgreSQL  unix ɥᥤ󥽥åȤȤޥ󤫤³
ޤpostmaster ư -i եåä$PGDATA/pg_hba.conf ե
ŬڤľơۥȼƳǧڤȤʤ¾Υޥ󤫤³Ǥ
Ǥ礦ˤTCP/IP³ǽˤʤޤ

ǽʥޥե٤Υǡ١˥åȤ
ޤ

3.6) ɤǽ뤿ˤϡǡ١󥸥ɤΤ褦Ĵ
Ǥ

Τ˥ǥå䤤碌®٤ޤEXPLAINޥɤ PostgreSQL 
ɤΤ褦ˤʤ䤤碌Ƥ뤫򸫤뤳ȤǤơɤΥ
ǥåȤƤ뤫򸫤뤳ȤǤޤ

⤷ INSERT ¿ѤƤϡCOPY ޥɤȤä礭ʥХåǤ
ԤʤȤƤƲϡINSERT ̡˹Ԥʤäȹ®Ǥ
ˡBEGIN WORK/COMMIT Υȥ󥶥󡦥֥å̵ʸϡ鼫Ȥ
줾Υȥ󥶥äƤȸʤޤĤʸĤΥȥ
󥶥󡦥֥åǹԤʤȤͤƲˤȥ󥶥
ΥСإåɤޤޤ礭ʥǡѹԤʤݤϥǥå
ٳơľȤͤƤߤƲ

塼˥󥰤Υץ󤬤Ĥޤpostmaster  -o -F ץǵ
ư뤳Ȥˤäơfsync() ̵ˤ뤳ȤǤޤˤäơƥȥ
 fsync() ǥǥ򹹿Τߤᤵޤ

postmaster -B ץȤäƥХåɡץˤȤ붦ͭ
Хåե礭뤳ȤǤޤ⤷Υѥ᡼⤯ȡ
ͥζͭ꡼֤ͤۤƤޤä postmaster ʤ
ʤǤ礦ͤǤϡ줾ΥХåե礭 8K ǡХåե 64
Ǥ

Хåɤ -S ץȤäơ줾ΥХåɡץŪ
¤ؤˤäƻȤ꡼κ祵䤹ȤǤޤ -S 
ϥХñ̤ǡͤ 512 (ʤ512K)Ǥ

ޤCLUSTER ޥɤȤäơơ֥Υǡ򥤥ǥå˹碌뤿
롼ײ뤳ȤǤޤܤϡ饤ޥ˥奢 CLUSTER 򸫤Ʋ


3.7) ɤΤ褦ʥǥХǽȤޤ

PostgreSQL ϡǥХΤ˰̣Τ롢־𤹤뤤Ĥεǽ
ޤ

ޤ--enable-cassert ץ configure 餻ޤƥѥ
뤳Ȥˤꡢ assert() ХåɤοĽƻ뤷ͽ
̤Ȥȥץߤ褦ˤʤޤ

postmaster  postgres ξǤĤΥǥХץѤǤޤ
Τ褦 postmaster ưȤϤĤǤ⡢ɸϤȥ顼Ϥ
ե褦ˤƤ뤳ȤΤƲ

        cd /usr/local/pgsql
        ./bin/postmaster >server.log 2>&1 &

ˤ PostgreSQL κǾΥǥ쥯ȥ server.log ե뤬֤ޤ
ΥեϥС䥨顼ˤĤͭѤʾޤߤޤ
Postmaster Ϲ˾ܺ٤ʾ𤹤뤿 -d ץޤ -d 
ץϡǥХ٥ꤷޤ⤤ǥХ٥Ǥϡ礭ʥե
뤳ȤդʤƤϤʤޤ

⤷postmasteräƤʤСpostgresХåɤ򥳥ޥɹԤ餻
뤳ȤǤľSQLʸ򥿥פ뤳ȤǤޤΤ꤫ϡǥХŪ
ȤᤷޤߥǤϤʤԤ䤤碌νˤʤ뤳Ȥ
դƤ⤷ǥХܥƥѥ뤷ƤСǥХå
äƲƤ뤫򸫤뤳ȤǤޤpostmaster Хåɤ򳫻Ϥ
櫓ǤϤʤΤǡΩʴĶäƤΤǤϤʤåХåɤȤ
꤬ʣ뤳ȤϤޤ

⤷postmasteräƤС륦ɥ psql򳫻Ϥȡpsql ǻȤ
 postgres ץPIDĤޤǥХåȤä postgresPID˥
å(attach)ޤǥХå椫֥졼ݥȤ򥻥åȤpsql 䤤
碌ȯԤޤǥХΤpostgresưϡPGOPTIONS="-W n" 
Ǥ줫顢psql 򳫻Ϥޤˤꡢn óϤ٤餻ϤʤΤ
ǥХåǥץ˥åơ֥졼ݥȤꤷϤɤ
ƸƤ椯ȤǤޤ

PostgreSQL ץˤϡǥХǽ¬ˤȤƤΩ -s -A -t Υ
ץ󤬤ޤ

ȤؿɤΤ餤¹Ի֤򿩤äƤ뤫򸫤뤿ˡץե󥰡
ץեդˤǥѥ뤹뤳ȤǽǤΥХåɤΥץե
롦ե pgsql/data/base/dbname ǥ쥯ȥ˳ǼǤ礦饤
ȤΥץեϥ饤Ȥθԥǥ쥯ȥ֤Ǥ礦Linux
ǤޤȤʥץե󥰤Ԥˤ -DLINUX_PROFILE ǥѥ뤹ɬפ
ޤ

3.8) ³褦ȤȤ 'Sorry, too many clients' ФΤϤʤǤ

postmasterƱưǤХåɥץФ¿䤹ɬפ
ޤ

κץ32ץǤ-NŬڤͤˤpostmasterƵư
뤫PostgreSQL.conf 뤳Ȥˤäơͤ䤹ȤǤޤ
ιǤ-NϺ1024ޤǤޤ⤷äɬפǤinclude/
config.hMAXBACKENDSäƹۤޤ⤷˾ʤconfigure
--with-maxbackendsؤȤäơ-NδͤǤޤ

⤷-N  32礭ΤǤС-B64礭ͤä
ƤϤʤʤ-B ϾʤȤ -N 2ܤϤʤƤϤʤ餺餯ǹǽ
˾ʤФ礭ͤɬפʤϤǤХåɥץ򤿤ˤ
ȡUnixͥ빽ѥ᡼䤹Ȥɬפˤʤ뤫⤷ޤ
󡣶ͭ꡼֥åκ(SHMMAX)ޥեκ(SEMMNSSEMMNI)
ץκ(NPROC)桼κץ(MAXUPRC)եκ
(NFILENINODE ǧ˴ޤޤޤ PostgreSQL˵ХåɤΥ
¤ƤΤϡƥΥ꥽Ȥ̤ƤޤȤ򤱤
Ǥ

3.9) pgsql_tmp ǥ쥯ȥˤϲޤ

䤤碌¹ԥ⥸塼ˤä줿Ūʥե뤬Υǥ쥯ȥ
˴ޤޤޤ㤨С⤷ ORDER BY ˥Хåɤ -S ѥ᡼
ǵĤͤ礭ʥڡȤκݤɬפȤȡ줿ǡ
ݻ뤿˰Ūʥե뤬Ĥޤ

ŪʥեϼưŪ˾äϤǤ⤷ȤǥХå
ɤå夷ƤޤȤϤʤޤpostmasterߤȥꥹȤǤ
Υեϥǥ쥯ȥ꤫äޤ

    [
         SYSLOGD ͳǥϤˤϡޤconfigure  --enable-syslog 
        դ餻塢ѥȥ󥹥ȡԤʤޤ
         ˡsyslog.conf  local?.*  ꤷ(Ķѿѹǽ)
        syslogd  HUP ʥäƽƤޤơ
        $PGDATA/pg_options  syslog=2 äơ postmaster  -S 
        ץդˤƥХ⡼ɤǵưޤ(С 7.1  
        pg_options  PostgreSQL.conf ˤʤäƤޤ)
    ]

3.10) PostgreSQLΥ᥸㡼꡼򥢥åץǡȤΤ˥פȥꥹȥ򤷤
ƤϤʤʤΤϤʤǤ

PostgreSQLϥޥʡ꡼ǤϾѹԤʤޤΤǡ7.2 
7.2.1 ؤΥåץ졼ɤˤϥפȥꥹȥɬפϤޤ󡣤᥸
꡼(ȤС7.27.3ؤΤ褦)Ǥϡƥơ֥ǡե
եޥåȤѹ򤷤ФйԤʤޤѹϤƤʣǡ
Τ桹ϥǡեΤθߴݻ뤳ȤǤޤ󡣥
פѥեޥåȤǥǡϤ򿷤եޥåȤɤ߹ळ
ȤǤޤ

Ʊ꡼ǤϥǥǤΥեޥåȤѹϤʤΤǡåץ졼ɤˤ
סꥹȥǤϤʤpg_upgrade ץȤȤȤǤޤ꡼
Ȥˤϡpg_upgrade Ѳǽʥ꡼ɤƤޤ

 

                                 μ                                  
                                                                               
4.1) Хʥꡦ̾參Ȥθ̩ʰ㤤ϲǤ

ܽҤϡ饤ޥ˥奢 DECLARE 򸫤Ʋ

4.2) ǽοΤߤ SELECTˤϤɤޤʹԡ

饤ޥ˥奢FETCH򸫤Ƥ뤤ϡSELECT ... LIMIT....Ȥ
ƤߤƲ

ȤߤΤϺǽοǤ⡢٤Ƥ䤤碌ɾʤƤϤʤ
ʤ⤷ޤORDER BY ä䤤碌ȤȤͤƤߤƲ
ORDER BY˹äǥåȤ PostgreSQL׵ᤵ줿ǽο
ɾǤ뤫⤷ޤ󤬡ǤʤСPostgreSQL ϰտޤ
ޤǤ٤ƤΥɾʤФʤʤ⤷ޤ

ʹԤSELECTˤϡʸȤޤ

    SELECT col
    FROM tab
    ORDER BY random()
    LIMIT 1;

4.3) ơ֥䤽¾ξΥꥹȤ psql ǸˤϤɤޤ

psqlΥɤȤƽ񤫤줿 pgsql/src/bin/psql/describe.c եɤळ
ȤǤˤϡpsqlΥХåå女ޥɤˤϤΤSQL
ޥɤޤޤƤޤ psql  -E ץĤƵưСͿ
ɤ¹Ԥ뤿䤤碌Ϥޤ

4.4) ơ֥뤫饫κ뤤ϡǡѹˤϤɤޤ

DROP COLUMNǽALTER TABLE DROP COLUMN Ȥƥ꡼7.3 ˲äޤ
ޤǤΥСǤϡˤޤ:

        BEGIN;
        LOCK TABLE old_table;
        SELECT ...  -- ʳΥ򤹤٤򤷤ޤ
        INTO TABLE new_table
        FROM old_table;
        DROP TABLE old_table;
        ALTER TABLE new_table RENAME TO old_table;
        COMMIT;

ΥǡפϼʸѤޤ

    BEGIN;
    ALTER TABLE tab ADD COLUMN new_col new_data_type;
    UPDATE tab SET new_col = CAST(old_col AS new_data_type);
    ALTER TABLE DROP tab COLUMN old_col;
    COMMIT;

ԤʤäȤϡä줿ԤȤäƤǥ֤뤿
VACUUM FULL tab򤷤ۤɤ⤷ޤ

4.5) ơ֥롢ǡ١κ祵ϡ

¤ϰʲΤȤǤ

ǡ١κ祵?       ̵ (4 TB Υǡ١¸ߤޤ)
ơ֥κ祵?           32TB
κ祵?               1.6TB
եɤκ祵?         1GB
ơ֥Ǥκ?       ̵
ơ֥Ǥκ祫?     ηˤ250-1600
ơ֥Ǥκ祤ǥ? ̵

󡢤ϼºݤ̵¤ǤϤʤǥ̤ȥ꡼䥹åץڡ
礭ˤ¤ޤǽϤͤȤΤۤ礭ʻ
ޤ

ơ֥륵32TBϥڥ졼ƥ󥰥ƥˤեΥݡ
ɬפȤޤ󡣵ʥơ֥ʣ1GBΥեʬ¸ޤΤǡ
ե륷ƥ¤ϽפǤϤޤ

ǥեȤΥ֥å32kˤ뤳Ȥǡơ֥륵Ⱥ祫
ܤ뤳ȤǤޤ

4.6) Ūʥƥȥե뤫ǡ¸ˤϡǡ١Υǥ
̤ϤɤΤ餤ɬפǤ

̤Υƥȥե PostgreSQL Υǡ١¸ˤϡ5ܤ
ǥ̤ɬפȤޤ

ȤơƹԤȥƥȵҤ 100,000ԤΥեͤƤߤޤ
ƥȤʸʿĹ20ХȤȲꤹȡեåȥե礭
2.8MB ǤΥǡޤ PostgreSQL ǡ١ե礭ϼ
褦6.4MBȸѤ뤳ȤǤޤ

    36 bytes: ƥΥإå()
    24 bytes: (int)եɤȥƥ(text)ե
   + 4 bytes: ڡΥåץؤΥݥ
   ----------------------------------------
   64 bytes per row

   PostgreSQL Υǡڡ 8192Х(8KB)ʤΤ:

   8192 bytes per page
   -------------------   =  128 rows per database page (ڤ夲)
     64 bytes per row

   100000 data rows
   --------------------  =  782 database pages
      128 rows per page
 
782 database pages * 8192 bytes per page  =  6,406,144 bytes (6.4 MB)

ǥåϡۤɤΥХإåɤ׵ᤷޤ󤬡ǥåդ
ǡޤʾ塢ʤ礭ʤޤ

NULLϥӥåȥޥåפ¸Ƥơ餬鷺˥ڡȤޤ

4.7) 줿ơ֥롢ǥåǡ١ӡ桼ɤΤ褦
ƸĤФޤ

psql ˤϤʥХåå塦ޥɤꡢɽޤ
Хåå塦ޥɤμ򸫤ˤ \? ȤäƲ

ޤpgsql/src/tutorial/syscat.source ե餻ƤߤƲϡ
 SELECT ʸˤɬפʾǡ١Υƥࡦơ֥뤫Ф
㼨Ƥޤޤpg_ ǻϤޤ륷ƥơ֥ˤ⵭ҤƤޤ
ˡpsql -l Ϥ٤ƤΥǡ١ꥹɽޤ

4.8) 䤤碌٤ǥåȤäƤͻҤޤ󡣤ʤǤ


ǥåϼưŪˤ٤Ƥ䤤碌ǻȤ櫓ǤϤޤ󡣥ơ֥
Ǿ礭䤤碌ǤΤ鷺ʥѡơΥ򤹤
ǥåϻȤޤϥǥåˤ굯
ʥǥϡơ֥򥹥ȥ졼Ȥɤ缡٤ʤ뤳
Ȥ뤫Ǥ

ǥåȤꤹ뤿ˡPostgreSQL ϥơ֥ˤĤƤ׾
ʤФʤޤ󡣤׾ϡVACUUM ANALYZEޤϡñ ANALYZE 
äƼ뤳ȤǤޤ׾Ȥäƥ֥ƥޥϥơ֥ˤ
ΤꡢǥåȤ٤ΤηǤޤ׾
ŬʷˡǤ⵮ŤʤΤ⤢ޤ׾μϡ
֥Ƥ˷֤ʤ٤Ǥ

ǥåϡ̾ ORDER BY ԤʤˤϻȤޤ󡣽缡
³ŪȤϡʥơ֥Υǥå̤Ϲ®Ǥ


ORDER BYȤ߹蘆줿LIMIT ϡơ֥ξʬ֤ˤ
ӥǥåȤǤ礦ºݡMAX()  MIN() ǥåȤʤ
Ƥ⡢Τ褦ͤ ORDER BY  LIMIT ȤäƥǥåȤäƼФ
ȤǽǤ:

    SELECT col
    FROM tab
    ORDER BY col [ DESC ]
    LIMIT 1;

⤷ץƥޥְäƥ󥷥륹򤷤Ȥ˵ʤ
СSET enable_seqscan TO 'off'ȤäƥǥǤޤʤ®
äƤ뤫ƥȤ򤷤ƤߤƤ

LIKE 뤤 ~ Τ褦ʥ磻ɥɱ黻Ҥ̤ʴĶǤȤޤ

  ʸʸκǽˤޤȤС
      LIKE ѥ%ǻϤޤʤ
      ~ (ɽ) ѥ^ǻϤޤʤФʤʤ
  ʸʸ饹Ϥ뤳ȤϤǤޤ󡣤ȤС[a-e]
  ILIKE  ~* Τ褦ʸȾʸ̤ʤϻȤޤ󡣤Τ
    FAQ4.12ؿΥǥåȤޤ
  initdb ˤƤϡǥեȤC뤬ȤʤƤϤʤޤ

[Ū˥ǥåȤˤ SET enable_seqscan = off ¹Ԥޤ ]

4.9) 䤤碌֥ƥޥɤΤ褦䤤碌ɾΤ򸫤ˤϤɤ
ޤ

饤ޥ˥奢 EXPLAIN 򸫤Ʋ

4.10) R-tree ǥåȤϲǤ

R-tree ǥå϶Ūʥǡ˥ǥåդ뤿˻Ȥޤϥ
奤ǥåǤϰϤθǤޤ󡣤ޤB-tree ǥåǤϡ
ǤϰϤθǤޤR-tree ǥåǤ¿Υǡ򰷤
ޤȤС⤷ R-tree ǥå point °դ뤳ȤǤ
ȥƥϡĹ˰Ϥޤ줿򤹤٤򤹤פȤ褦䤤碌
ˡΨɤޤ

R-Tree ߷פθŵȤʤ븢Ҥʸ:

Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching."
Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.

ʸϡStonebraker  "Readings in Database Systems" Ǥ夲
Ƥޤ

    [
          ü¼R-TreeطʸҲ𤷤ĺޤ
        ܸ Postgres ML Υ֤ "Subject: [postgres95 801] spatial data structures" 
                http://www.sra.co.jp/people/t-ishii/PostgreSQL/mhonarc/pgsql-jp/1996Oct/msg00007.html
        
    ]

ȹߤ R-Tree ǥݥꥴܥåǤޤŪˤR-Tree Ϥäȹ
褦ˤĥǤޤ¼ŪˤϡR-Tree γĥˤϤäȤ
ȤɬפǤơߡ桹ϤɤΤ褦ˤ뤫ˤĤƤʸäƤ


    [
          󥿡Ҳ¿֥ȤؤγĥǤܤϡ
        http://www.interwiz.koganei.tokyo.jp/software/geometric/index.html
        
    ]

4.11) Ū䤤碌ŬȤϲǤ

GEQO ⥸塼ϡΥơ֥礹ȤˡŪ르ꥺ(GA)
碌®ޤˤꡢߤĤ֤õԤʤʤƤ⡢礭ʷ
(join queries)򰷤ȤǤ褦ˤʤޤ

4.12) ɽǤθʸȾʸȤ̤ʤɽϤɤΤ褦˼
ޤʸȾʸȤ̤ʤΤΥǥåϤɤΤ褦˻
ޤ

~黻ҤɽȹԤʤ~* ʸȾʸ̤ʤ
(case-insensitive)ɽȹԤޤʸȾʸ̤ʤ LIKE 黻
Ҥ ILIKE Ȥޤ

ʸȾʸ̤ʤӼΤ褦ɽǤ롧

    SELECT *
    FROM tab
    WHERE lower(col) = 'abc';

ɸ।ǥåǤϻȤ줺ʤ顢⤷ؿǥåäʤ餽
줬ȤǤ礦

   CREATE INDEX tabindex ON tab (lower(col));
   

        WHERE lower(textfield) LIKE lower(pattern)

4.13) 䤤碌ǡեɤ NULL Ǥ뤳Ȥ򸡽ФˤϤɤޤ


 IS NULL  IS NOT NULL ȤǻƤߤޤ

4.14) ͡ʸΤ줾ΰ㤤ϲǤ

Type            Internal Name   Notes
--------------------------------------------------
CHAR(n)         bpchar          ꤵ줿ĹȤʤ褦˶򤬵ͤ
"char"          char            ʸ
VARCHAR(n)      varchar         ĹΥꤹ롢ͤʪ̵
TEXT            text            Ĺ˾¤̵ƥ
BYTEA           bytea           ĹΥХ(null-byte safe)

̾ˤܤˤΤϡƥࡦĴ٤Ȥ䡢顼å
ȤǤ

嵭ηΤǽΣĤη "varlena" Ǥ(ʤǥκǽΣ
ȤǡĹǡθ˼ºݤΥǡ³ޤ)Τ褦˼ºݤζ֤
줿礭⾯礭ʤޤΥǡTOASTˤ갵
줿ʣϤä¸줿ꤷơǥζ֤ϻפä꾮
ޤ

VARCHAR(n) ϲĹʸ¸Τ˺ŬǤ¸ǤʸĹ
¤ޤTEXT Ĺ¤̵ʸ¸ΤΤǡ 1Х
ȤǤ CHAR(n)ϡVARCHAR(n)Ϳ줿ʸ¸ΤФ֥
ͤǤĤƱĹʸ¸Τ˺ŬǤBYTEAϡʬŪNULL
ΥХȤޤХʥǡ¸뤿ΤΤǤΥפƱ
ǽޤ

4.15.1) (serial)ưʬեɤϤɤΤ褦ˤĤޤ

PostgreSQL  SERIAL ǡ򥵥ݡȤޤ֤ȥǥå
ưޤȤС

        CREATE TABLE person ( 
                id   SERIAL, 
                name TEXT 
        );

ϼưŪ˼Τ褦ޤ:

        CREATE SEQUENCE person_id_seq;
        CREATE TABLE person ( 
                id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
                name TEXT 
        );
        CREATE UNIQUE INDEX person_id_key ON person ( id );

    [
        CREATE UNIQUE INDEX person_id_key ON person ( id );
        ϡ 7.3 ϼưŪˤϹԤʤʤʤޤ
    ]

֤ˤĤƤΤäȾܤϡ饤ޥ˥奢 create_sequence 


ޤƥOIDեɤͤȤƻȤȤǤޤʤ顢⤷
ǡ١פƤɤɬפϡOID¸뤿
pg_dump  -oץȤޤϡCOPY WITH OIDSץȤɬפ
ޤ Bruce Momjian (http://www.PostgreSQL.org/docs/aw_pgsql_book)
Numbering RowsξϤˤꤢޤ

4.15.2) SERIALǡͤϡɤޤ

ҤȤĤˡϡnextval() ؿȤäƤͤ(before) SEQUENCE 
֥Ȥ鼡 SERIAL ͤФ줫ºݤ򤹤뤳ȤǤ
4.15.1 Υơ֥ȤȤȡǤϤΤ褦ˤʤޤ

        new_id = execute("SELECT nextval('person_id_seq')");
        execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

ơnew_id ¸ͤ¾䤤碌(ȤСperson ơ֥
Ф볰(foreign key)Τ褦)ȤȤ褤Ǥ礦ưŪ˺줿
SEQUENCE֥Ȥ̾ϡ<table>_<serialcolumn>_seq Τ褦ˤʤꡢΤ
table  serialcolumn Ϥ줾ơ֥̾SERIAL̾Ǥ

뤤ϡͿ줿SERIALͤ򡢤줬ͤȤ줿(after)
currval() ؿȤäƼФȤǤޤȤС

        execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
        new_id = execute("SELECT currval('person_id_seq')");

ǸˡINSERTʸ֤OIDȤäơͤߤĤ뤳ȤǤޤ
oidͤ40ãȤȤäƤޤǤܿ㤤ȤʤǤ礦
PerlDBI Edmund Mergl κä DBD::Pg ⥸塼ȤС$sth->execute()
θ $sth->{pg_oid_status} ͳƤ OID ͤȤ褦ˤ뤳ȤϤǤ
ޤ

4.15.3) ¾Υ桼Ȥζ֤򤱤뤿ˤϡcurrval()  nextval() ϻȤ
ۤ褤ΤǤ礦

Ϥޤcurrval() ϡ٤ƤΥ桼ǤϤޤ󤬡ʤΥХå
ɤͿ줿ߤ֤ͤޤ

4.15.4) ȥ󥶥ǤȤˤ⤦ɥֹ椬Ȥʤ
ϤʤǤ󥹡SERIAL˶ΤϤʤǤ

Ʊ뤿ˡ¹Υȥ󥶥ˡɬפǥȥ󥶥󤬽
λޤǥåʤͤͿƤޤΤȥ󥶥
ǤֹƤ˥åפޤ

4.16) OID ȤϲǤ TID ȤϲǤ

OID ȤϰդΥID Ф PostgreSQL ǤPostgreSQL ǤĤ
뤹٤ƤΥϰդ OID ޤinitdb ȯ OID Ϥ٤ 16384
(include/access/transam.h )꾮ͤǤinitdb Τ٤Ƥ OID (桼
)ϤʾͤˤʤޤǤϡ餹٤Ƥ OIDϰĤΥǡ֥
ǡ١αޤ餺PostgreSQL 󥹥ȥ졼ΤǰդǤ

PostgreSQL ϥơ֥֤ΥӤĤ뤿ˡΥƥơ֥ OID
Ȥޤ OID Υ桼Υ̤뤿ǻȤ뤳
ǤޤOID ͤ¸뤿ˤ OID 򥫥˻ȤȤ򾩤ޤ
®뤿 OID եɤ˥ǥå뤳ȤǤޤ OID
ϡƤΥǡ١ǻȤΰ褫顢Ƥο˳Ƥ
OID ¾βѤ뤤ϸ OID ơ֥Ȱ˥ԡ
ʤ顢ǤʤϤޤ

        CREATE TABLE new (old_oid oid, mycol int);
        SELECT old_oid, mycol INTO new FROM old;
        COPY new TO '/tmp/pgtable';
        DELETE FROM new;
        COPY new WITH OIDS FROM '/tmp/pgtable';


OID ϡ4ХȤȤ¸ƤΤǡ40ۤȰƤޤǤ
ï⤳줬𤷤ƤͤϤޤǤʤˤ¤
Ȥײ褷Ƥޤ

TID ʪ򤽤Υ֥åȥեåͤǼ̤뤿˻ȤޤTID
ϥ줿ƥɤѤޤ TID ϡʪؤ
˥ǥåܤǻȤޤ

4.17) PostgreSQL ǻȤ뤤ĤѸΰ̣ϲǤ

ĤΥɤŤʸˤϡ줾ʬǤäȰŪ
ȤѸ줬ȤƤޤ

  ơ֥(table)ط(relation)饹(class)
  (row)쥳(record)åץ(tuple)
  (column)ե(field)°(attribute)
  (retrieve)(select)
  ִ(replace)(update)
  ɲ(append)(insert)
  OID, Ϣ(serial value)
  ݡ(portal), (cursor)
  ΰѿ(range variable)ơ֥̾(table name)ơ֥̾(table alias)

Ūʥǡ١ѸΥꥹȤϡhttp://hea-www.harvard.edu/MST/simul/
software/docs/pkgs/pgsql/glossary/glossary.html ǸĤޤ

4.18) 顼å "ERROR: Memory exhausted in AllocSetAlloc()"ФΤϤ
Ǥ

餯ƥβۥ꡼ƻȤ̤ƤޤäƤǽ뤫
ͥ뤬꥽ˤĤƤͤ㤹ǽޤ postmaster
ưˤƤߤƲ

        ulimit -d 262144
        limit datasize 256m

ˤäơɤ餫ҤȤĤǤ礦ϥץΥǡ
¤⤯ꤷ֤䤤碌뤹褦ˤʤǤ礦
ޥɤϸԤΥץȡΥޥɤ餻˺ƤΥ֥ץ
ˤĤŬѤޤХåɤȤƤ¿Υǡ֤SQL 饤
Ȥ꤬³ƤΤǤС饤Ȥ򳫻ϤˤƤߤ


4.19) ɤΥС PostgreSQL 餻Ƥ뤫Ĵ٤ˤϤɤޤ

psql  SELECT version(); 򥿥פޤ

4.20) 顼֥Ȥinvalid large obj descriptor ޤ
ʤǤ礦

顼֥򤹤ȤϡBEGIN WORKCOMMITդɬפ
ޤʤlo_open ... lo_closeϤ߹ߤޤ

ߤϡPostgreSQLΥȥ󥶥ΥߥåȻ˥顼֥ȡϥ
Ĥ뤳Ȥˤꡢlo_openޥɤλľ˶Ū˥롼¹Ԥޤ
Τᡢǽ˥ϥɥФƲ򤷤褦Ȥȡinvalid large obj
descriptor(顼֥ȤεһҤ)Ȥʤޤǡ⤷ȥ
ȤΤ˺ȡʾʤȤۤȤɤλ֡ƯƤɤ
顼åФΤǤ

⤷ODBCΤ褦ʥ饤ȥ󥿡ե򤪻Ȥʤ顢auto-commit off
ꤹɬפ뤫⤷ޤ

4.21) ߤλ郎ǥեȤȤʤ褦ʥϤɤΤ褦ˤĤޤ

CURRENT_TIMESTAMPȤޤ:

        CREATE TABLE test (x int, modtime timestamp DEFAULT >CURRENT_TIMESTAMP );

4.22) ʤINȤ䤤碌ȤƤ٤ΤǤ

ߡ䤤碌γƥˤĤ䤤碌η̤֤˥󤹤뤳
ˤꡢ䤤碌䤤碌˷礷Ƥޤ⤷䤤碌
֤䤤碌ιԤ֤ʤ顢̤INEXISTS֤뤳
ȤǤ

        SELECT *
        FROM tab
        WHERE col1 IN (SELECT subcol FROM subtab)

֤ơ

        SELECT *
        FROM tab
        WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)

Ȥޤ줬üᤤǤsubcolϺդǤ٤Ǥ
Ǽ7.4ǽޤ

4.23) (outer join)ϤɤΤ褦˼¸ޤ?

PostgreSQL  SQL ɸ๽ʸȤ(祤)򥵥ݡȤޤ
 2Ĥ꤬ޤ

        SELECT *
        FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);

뤤

        SELECT *
        FROM t1 LEFT OUTER JOIN t2 USING (col);

ξħŪ䤤碌Ǥ t1.col  t2.col ȷ礷ơt1 η礵ʤ
(t2 Ȱפʤä)֤ƤޤRIGHT  t2 η礵ʤ
äǤ礦FULL ϡפ t1  t2 Ϸ礵ʤ
ä֤Ǥ礦OUTER Ȥդϥץ LEFT, RIGHT, ޤ FULL
ʤɤηꤵƤޤΥ꡼Ǥϳ(outer join)UNION 
NOT IN Ȥäƥߥ졼ȤǤޤȤСtab1  tab2 礹Ȥϡ
䤤碌ĤΥơ֥礷ޤ

        SELECT tab1.col1, tab2.col2
        FROM tab1, tab2
        WHERE tab1.col1 = tab2.col1
        UNION ALL
        SELECT tab1.col1, NULL
        FROM tab1
        WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
        ORDER BY col1

4.24) ʣΥǡ١Ȥ䤤碌ϤɤΤ褦ˤФǤޤ

ԤΥǡ١ʳؤ䤤碌ˡϤޤ󡣤ȤΤPostgreSQL
١ͤΥƥ५ɤ߹िǡˤϡȤΤդ
ˤǡ١ۤ䤤碌򤹤뤹٤ޤ

contrib/dblink ϥǡ١(cross-database)䤤碌ؿƽФˤ
ޤ󡢥饤ȤƱ³̤Υǡ١ؤĥʤƤϤ
餺̤򥯥饤¦ǥޡʤƤϤʤޤ

4.25) ؿʣΥޤϥ֤ˤϤɤޤ

7.3Ǥϴؿ顢ʣԤΤʣñ֤ޤ http://
techdocs.postgresql.org/guides/SetReturningFunctions

4.26)ʤPL/PgSQL ؿ椫ơ֥μ¤ create/drop 뤳ȤǤ
ʤΤǤ礦

PL/PgSQL ϴؿƤ򥭥å夷ԹѤΤᡢ⤷ PL/PgSQL ؿ
ơ֥˥ȡΥơ֥ϤȤǥɥåפƺޤ
ؿƤӸƤӽФȡå夵Ƥ뤽δؿƤϤޤŤ
ơ֥ȤƻؤƤ뤫Ǥϡ PL/PgSQL  EXECUTE 
ơ֥륢Τ˻ȤȤǤǡ󥯥꡼Υѡľ
Ǥ礦

4.27) ɤΤ褦ʥץꥱ󥪥ץѤǤޤ?

ޥ졼֤Υץꥱ󥪥ץ󤬤ĤѲǽǤ
ץǤϥޥΤߤǡ١ѹǤ졼֤ϥǡ١
Ǥ http://gborg.PostgreSQL.org/genpage?replication_research κǸ
ˤƤޤޥ-ޥΥץꥱˤ륽塼
 http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php ˤƺ
ʤƤޤ

[ JPUG ʬȥ󥶥ȯʬʲǤϡʰ¸ˤ濴ˣꥳߥå
μԤʤäƤޤ http://www.postgresql.jp/subcommittee/dt/index.html
http://www.snaga.org/jpug-dt/ ëƤˤץꥱPGReplicate
http://www.csra.co.jp/~mitani/jpug/pgreplicate/ ]

4.28) ɤΤ褦ʰŹ沽ץѤǤޤ?

  contrib/pgcryptoˤSQL䤤碌ǻȤΰŹ沽ޤߤޤ
  饤ȤȥФȤδ֤Ź沽ˤϡФǤpostgresql.conf
    sslץtrue ꤷpg_hba.confˤŬѤhost뤤hostssl
    ιԤʤƤϤʤޤ󡣤ơ饤ȤǤsslmodedisableˤƤ
    ʤޤ (PostgreSQLSSL³Τˡstunnel  ssh ɥѡ
    ƥΰŹ沽žȤȤǽǤ뤳Ȥ⵭Ƥޤ)
  С7.3 Ǥϥǡ١桼Υѥɤ¸˼ưŪ˰
    沽ޤΥСǤpostgresql.conf
    PASSWORD_ENCRYPTIONͭˤɬפޤ
  С餻Τ˰Ź沽ե륷ƥȤȤǤޤ

 

                        PostgreSQLγĥˤĤƤμ                         
                                                                               
5.1) ʬǽ񤤤桼ؿ psql Ǽ¹ԤȥפƤޤ
ϤʤǤ

Ͽȹͤޤޤǽˡ桼ؿñȤΥƥȥ
ˤƻƤߤƲ

5.2) PostgreSQL Ѥ˽񤤤äŨʿؿ󶡤ƥץȤ
׸ΤǤ

ιԤʤäĥpgsql-hackers ᡼󥰡ꥹȤäƤ
ơ椯椯Ϥĥ contrib/ ֥ǥ쥯ȥ뤳ȤˤʤǤ
礦

5.3) ץ֤ CδؿϤɤΤ褦˽񤭤ޤ

С7.3ʹߤPostgreSQLǤϡơ֥֤ؿ C, PL/PgSQL SQL
ˤƴ˥ݡȤޤܤϥץޥɤξ򸫤ƤC
줿ɽ֤ؿ꤬contrib/tablefuncˤޤ

5.4) եѹޤƥѥ뤷ƤѲʤΤϤʤ
Ǥ

Ĥ Makefile 󥯥롼ɡեФŬڤʰ¸طäƤ
make clean 򤷤Ƥ⤦ make ԤʤʤƤϤʤޤ󡣤⤷GCC
򤪻ȤǤ configure  --enable-depend ץȤäơѥ
¸طưŪĴ٤뤳ȤǤޤ
 

[
  ܸǤˤĤƤϰʲ̤Ǥ

  ǽ:   2003ǯ0920
  :       ¼  (Jun Kuwamura <juk at PostgreSQL.jp>)

  FAQκˤ궨Ϥ򤷤Ƥä(ɾΤάƤޤ):

                 ̭(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>)
                а ã(Tatsuo ISHII <t-ishii at sra.co.jp>)
                ƣ ο(Tomohito SAITOH <tomos at elelab.nsc.co.jp>)
                Ͼ  ȥ(Hajime BABA <baba at kusastro.kyoto-u.ac.jp>)
                 칬(Kazuyuki OKAMOTO <kokamoto at itg.hitachi.co.jp>)
                 (Shoichi Kosuge <s-kosuge at str.hitachi.co.jp>)
                 Ƿ(Yoshiyuki YAMASHITA <dica at eurus.dti.ne.jp>)
                 Ϻ(Sintaro SAKAI <s_sakai at mxn.mesh.ne.jp>)
                 (Masami OGOSHI <ogochan at zetabits.com>)
                 ӹ(Toshiyuki ISHIKAWA <tosiyuki at gol.com>)
                 й(Shigehiro HONDA <fwif0083 at mb.infoweb.ne.jp>)
                 (Jun SESE <sesejun at linet.gr.jp>)
                ë ѹ(Hidetaka KAMIYA <hkamiya at catvmics.ne.jp>)
                 (Atsushi SUGAWARA <asugawar at f3.dion.ne.jp>)
                 (Kaori Inaba <i-kaori at sra.co.jp>)

  Ϥᡢݥȥ쥹˴ؤ˭٤ܸݥȥ쥹᡼󥰥ꥹȡ
ΤääƤ줿 JF(Linux Japanese FAQ Mailing List)ץȡ¾
ľܤ뤤ϴŪˤäƤ뤹٤ƤΥץ󥽡ߥ˥ƥγ˴դޤ

  ܸǤΤʸϡʲ⤿ɤޤ
        http://www.rccm.co.jp/~juk/pgsql/(FAQ PostgreSQL ˤĤƤ褯)
        http://www.PostgreSQL.jp/subcommittee/jpugdoc/JPUGʸ񡦽ҴϢʬʲ
        http://www.linux.or.jp/JF/Linux JFץ

  ʤ˴ؤ뤴ո(juk at PostgreSQL.jp)ޤǤ󤻲
]

