Convert Chinese FAQ to valid XHTML, finally.
authorBruce Momjian
Tue, 17 May 2005 04:17:47 +0000 (04:17 +0000)
committerBruce Momjian
Tue, 17 May 2005 04:17:47 +0000 (04:17 +0000)
doc/FAQ_chinese
doc/src/FAQ/FAQ_chinese.html

index e39c0c77a9f55d5cf9a898af5e989f777a6721dc..cae9589bd55ccb8d0fc5275aa65a5d989a75147b 100644 (file)
    
    £¨Portions copyright (c) 1996-2002, PostgreSQL Global Development
    Group
-    Portions Copyright (c) 1994-6 Regents of the University of
+   Portions Copyright (c) 1994-6 Regents of the University of
    California£©
    
    ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓÃ
    µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ
    http://www.commandprompt.com/ppbook ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL
    µÄÊé¡£ÔÚhttp://www.intermedia.net/support/sql/sqltut.shtm£¬http://ourw
-   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM  ºÍ
+   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM ºÍ
    http://sqlcourse.com ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£
    
    ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second
           Í¸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬
           ¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£
           
-          
    ÐÔÄÜ
           PostgreSQL
           ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆ
           ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉ
           ú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£
           
-          
    Ö§³Ö
           ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ
           ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓàDBMS
           »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡
           ££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 Ð¡½Ú¡££©
           
-          
    ¼Û¸ñ
           ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄ
           ãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ
    
     4.7) ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿
     
-    psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_
+   psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_
    ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
    
    Ò²¿ÉÒÔÊÔÊÔÎļþ
    ³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN()
    ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô ORDER BY ºÍ LLIMIT
    Ê¹ÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº
-       SELECT col
-       FROM tab
-       ORDER BY col [ DESC ]
-       LIMIT 1;
+   SELECT col
+   FROM tab
+   ORDER BY col [ DESC ]
+   LIMIT 1;
    
    µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ Ê±£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓãº
      * ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º
    ²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~*
    ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎ޹صĠLIKE ±äÖÖ³ÉΪ ILIKE¡£
    ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º
-       SELECT *
-       FROM tab
-       WHERE lower(col) = 'abc';
+   SELECT *
+   FROM tab
+   WHERE lower(col) = 'abc';
    ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:
-       CREATE INDEX tabindex ON tab (lower(col));
+   CREATE INDEX tabindex ON tab (lower(col));
    
     4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿
     
    
     4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿
     
-     ÀàÐÍ            ÄÚ²¿Ãû³Æ    ËµÃ÷
-     --------------------------------------------------
-     "char"        char         1¸ö×Ö·û character
-     CHAR(#)      bpchar
-   ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë
-     VARCHAR(#)  varchar
+   ÀàÐÍ ÄÚ²¿Ãû³Æ ËµÃ÷
+   --------------------------------------------------
+   "char" char 1¸ö×Ö·û character
+   CHAR(#) bpchar ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë
+   VARCHAR(#) varchar
    Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë
-     TEXT           text         ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ
-     BYTEA          bytea       ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
+   TEXT text ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ
+   BYTEA bytea ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
    ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£
    ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶
    È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐ
     
    PostgreSQL Ö§³Ö SERIAL
    Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬
-       CREATE TABLE person (
-           id SERIAL,
-           name TEXT
-           );
+   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 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_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐеÄ
    oid ×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓÃ
    pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£
     
    Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö SERIAL
    Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà4.15.1 ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º
-       new_id = execute("SELECT nextval('person_id_seq')");
-       execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
+   new_id = execute("SELECT nextval('person_id_seq')");
+   execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
    Pascal')");
    ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person
    ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ
    ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£
    ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ
    SERIAL Öµ£¬ÀýÈ磬
-       execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
-       new_id = execute("SELECT currval('person_id_seq')");
+   execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+   new_id = execute("SELECT currval('person_id_seq')");
    ×îºó£¬Äã¿ÉÒÔʹÓôӠINSERT Óï¾ä·µ»ØµÄ OID
    ²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ
    Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $sth->execute()
    Öµ¡£¿ÉÒÔÔÚ 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';
+   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ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òË
    ãÔÚÓÐÈ˱¨¸æÖ®Ç°Ïû³ýÕâ¸öÏÞÖÆ¡£
     
    Ò»Ð©Ô´´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿
    ·Ö£º
-       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
+   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/softw
    are/docs/pkgs/pgsql/glossary/glossary.html ¡£
    
     
    ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô
    ¶¯ postmaster Ö®Ç°ÊÔÊÔÏÂÃæµÄÃüÁ
-       ulimit -d 262144
-       limit datasize 256m
+   ulimit -d 262144
+   limit datasize 256m
    È¡¾öÓÚÄãÓõÄ
    shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£
    ¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк
     4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿
     
    Ê¹ÓàCURRENT_TIMESTAMP£º
-       CREATE TABLE test(x int, modtime timestamp DEFAULT
-   CURRENT_TIMESTAMP);
+   CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);
    
     4.22) ÎªÊ²Ã´Ê¹ÓàIN µÄ×Ó²éѯÕâôÂý£¿
     
    Ä¿Ç°£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ
    ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN
    Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓàEXISTS Ìæ»» IN£º
-       SELECT *
-       FROM tab
-       WHERE col IN (SELECT subcol FROM subtab);
+   SELECT *
+   FROM tab
+   WHERE col IN (SELECT subcol FROM subtab);
    ¸ÄΪ£º
-       SELECT *
-       FROM tab
-       WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+   SELECT *
+   FROM tab
+   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
    ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol
    Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£
    
     4.23) ÎÒÔõÑù½øÐРouter join £¨ÍâÁ¬½Ó£©£¿
     
    PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º
-       SELECT *
-       FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+   SELECT *
+   FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
    »ò
-       SELECT *
-       FROM t1 LEFT OUTER JOIN t2 USING (col);
+   SELECT *
+   FROM t1 LEFT OUTER JOIN t2 USING (col);
    ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1
    ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT OUTER
    JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ
    £¨INNER 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
+   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) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿
     
     4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
     
    Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»Ä
-   Ü½øÐжÁ¡£ÍøÒ³
-   http://gborg.PostgreSQL.org/genpage?replication_research
+   Ü½øÐжÁ¡£ÍøÒ³ http://gborg.PostgreSQL.org/genpage?replication_research
    µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ
    http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php
    ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£
index 493fbeb8fe0e8f962f6cd2197eda0392d7bb8cae..744496dd6272ee3b38418bba848b175ebe9bff4c 100644 (file)
+
 
 
-PostgreSQL </div> <div class="diff rem">-           FAQ-ch
-       
-       
-   
-   
-       

PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©

          
-       ×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST
-       

Ŀǰά»¤ÈËÔ±£ºBruce Momjian ([email protected])          

-           
-           ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨[email protected]          
-       £©

±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚhttp://www.postgresql.org/files/documentation/faqs/FAQ.html          

-       ²é¿´¡£

²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚhttp://www.postgresql.org/docs/faq/Àï»Ø´ð¡£
          

-           
-           
-               

³£¼ûÎÊÌâ

-           
-        1.1)           
-           PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿          
-           
-        1.2)           
-           PostgreSQL µÄ°æÈ¨ÊÇʲô?          
-           
-           1.3)           
-           PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿          
-           
-           1.4) ¿ÉÓõķǠUnix           
-           Æ½Ì¨ÓÐÄÇЩ£¿
-           
-           1.5) ÎÒ´ÓÄÄÀïÄܵõ½           
-           PostgreSQL£¿
-           
-           1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô           
-           PostgreSQL µÄÖ§³Ö£¿          
-           
-           1.7)           
-           PostgreSQL ×îеİ汾ÊÇʲô£¿          
-           
-           1.8) ÓÐÄÄЩ¿ÉÓõĠ          
-           PostgreSQL µÄÎĵµ£¿          
-           
-           1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG        
-        »òȱʧµÄÌØÐÔ£¿
-           
-           1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ           
-           SQL £¿          
-           
-           1.11)           
-           PostgreSQL ÊÇ Y2K ¼æÈݵÄÂ𣿠         
-           
-           1.12)           
-           ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿
-           
-           1.13)           
-           ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿          
-           
-           1.14)           
-           PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿
          
-        1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú           
-           PostgreSQL £¿          
-           
-               

Óû§¿Í»§¶ËÎÊÌâ

-           
-           2.1) ÓР          
-           PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿          
-           
-           2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ           
-           PostgreSQL ÓÃÓÚ Web Ò³Ã棿          
-           
-           2.3)           
-           PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂ𣿠         
-           
-           2.4)           
-           ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL ´ò½»µÀ£¿          
-           
-               

ϵͳ¹ÜÀíÎÊÌâ

-           
-        3.1) ÎÒÔõÑùÄܰѠ          
-           PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿          
-           
-        3.2) µ±ÎÒÔËÐР          
-           postmaster Ê±£¬³öÏÖ Bad System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿          
-           
-        3.3) µ±ÎÒÊÔͼÔËÐР          
-           postmaster Ê±£¬³öÏÖ IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿          
-           
-        3.4) µ±ÎÒÊÔͼÔËÐР          
-           postmaster Ê±£¬³öÏÖ IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿          
-           
-        3.5)           
-           ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿
-           
-        3.6)           
-           ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿
-           
-        3.7)           
-           PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿          
-           
-        3.8)           
-           ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡± ÏûÏ¢£¿
          
-        3.9)           
-           pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿
          
-        3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶           
-           PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿          
-           
-               

²Ù×÷ÎÊÌâ

-           
-        4.1)           
-           ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿
-           
-        4.2)           
-           ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿
-           
-        4.3)           
-           ÎÒÈçºÎ»ñȡһ¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ psql Àï¿´µ½µÄ¶«Î÷£¿          
-           
-        4.4)           
-           ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿
-           
-        4.5)           
-           Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿
-           
-        4.6)           
-           ´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿
-           
-        4.7)           
-           ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿
-           
-        4.8)           
-           ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿
-           
-        4.9)           
-           ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿
-           
-        4.10) R-tree           
-           Ë÷ÒýÊÇʲô£¿
-           
-        4.11)           
-           Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿          
-           
-        4.12)           
-           ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿
-           
-        4.13)           
-           ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿          
-           
-        4.14)           
-           ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿
-           
-        4.15.1)           
-           ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿
-           
-        4.15.2)           
-           ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿
-           
-        4.15.3) Ê¹Óà          
-           currval() ºÍ nextval() »áµ¼ÖÂºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿
          
-        4.15.4)           
-           ÎªÊ²Ã´²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿
-           
-        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 º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿
          
-        4.27)           
-           ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
-        4.28)           
-           ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
-           
-               

À©Õ¹ PostgreSQL

          
-           
-           5.1)           
-           ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿          
-           
-        5.2) ÎÒÈçºÎÄܸø           
-           PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿          
-           
-        5.3)           
-           ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿          
-           
-        5.4)           
-           ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿
-           
-           
-           
-               

³£¼ûÎÊÌâ

-           
-           

1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿

          
-           PostgreSQL ¶Á×÷ Post-Gres-Q-L ¡£          
-       

PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿Ô­ÐÍ POSTGRES Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES           

-           µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á˵ĠSQL ×Ó¼¯È¡´úÁËÔ­ÏȵĠPostQuel ²éѯÓïÑÔ¡£PostgreSQL           
-           ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£

-       

PostgreSQL µÄ¿ª·¢ÓɲμӠPostgreSQL ¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄЭµ÷ÈËÊÇ Marc G. Fournier £¨[email protected]          

-       £©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL µÄËùÓпª·¢¡£          
-       

-       PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly           
-       Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael           
-       Stonebraker ½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£          
-       

Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL ¹¦Äܺó£¬ËüµÄÃû×ָijɠPostgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ           

-           PostgreSQL¡£
-           

1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?

          
-       PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£          
-       

-       PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ          
-       

-       £¨PostgreSQL Data Base Management System£©

²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é
          

-       ²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶­Ê          
-       

£¨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.£©
          
-           
-           ÉÏÃæ¾ÍÊÇ BSD °æÈ¨ÉùÃ÷£¬Ò»¸ö¾­µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£          
-           

1.3) PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿

          
-       

Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐРPostgreSQL ¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾­¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£

          
-       

1.4) ¿ÉÓõķǠUnix Æ½Ì¨ÓÐÄÄЩ£¿

         
-       ¿Í»§¶Ë
-       

°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS Windows Æ½Ì¨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows           

-           ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix Æ½Ì¨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É Win32           
-           libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒԺ͠ODBC ¿Í»§¶ËͨѶ¡£

          
-       

·þÎñÆ÷

-       

Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See pgsql/doc/FAQ_MSWIN          

-           Îļþ»ò http://www.PostgreSQL.org/docs/faq-mswin.html          
-       ¡£          
-       

ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£          

-           

1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿

          
-       

PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ ftp://ftp.PostgreSQL.org/pub£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£          

-           

1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿

          
-       

Ö÷ÒªµÄÓʼþÁбíÊÇ£º[email protected]¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйؠ          

-           PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª          
-           
        subscribe
-        end
-           µÄÓʼþµ½ [email protected]          
-       ¡£          
-       

»¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º[email protected]£¬ÆäÄÚÈÝΪ£º

-           
        subscribe
-        end
-       Ã¿µ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£          
-       

»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          

-           
        subscribe
-        end
-           »¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          
-           
        subscribe
-        end
-           ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW Ö÷Ò³ÕÒµ½£º 
http://postgresql.org/
          
-           ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ÆµµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓàunix ÃüÁîirc -c '#PostgreSQL' "$USER"           
-               irc.phoenix.net
-       

ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ http://www.PostgreSQL.org/users-lounge/commercial-support.html          

-           ¡£          
-           

1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿

          
-       PostgreSQL ×îеİ汾Êǰ汾 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££©          
-       

ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£

-           

1.8) ÓÐÄÄЩ¿ÉÓõĠPostgreSQL µÄÎĵµ£¿

          
-           ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc Ä¿Â¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL           
-           µÄÊֲᣬÔÚ http://www.PostgreSQL.org/users-lounge/docs/          
-       ¡£

ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ           

-               http://www.PostgreSQL.org/docs/awbook.html ºÍ           
-               http://www.commandprompt.com/ppbook/ ¡£ÔÚ           
-               http://www.ca.PostgreSQL.org/books/ ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ           
-               http://techdocs.PostgreSQL.org/
-       ÉÏÊÕ¼¯ÁËÓйؠPostgreSQL µÄ¼¼ÊõÎÄÕ¡£          
-       

psql

-       ÓÐһЩ²»´íµÄ \d ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£          
-       

ÎÒÃǵĠweb Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®

1.9)        

-        ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿         
-           PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á˵ĠSQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃǵĠ          
-               TODO ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£          
-           

1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿

          
-           ÔÚ http://www.postgresql.org/docs/awbook.html          
-           µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ           
-               http://www.commandprompt.com/ppbook ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ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"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ           

-               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 ¡£          
-           

1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿

          
-           ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC Ö®Ç°µÄÈÕÆÚ¡£          
-           

1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿

          
-       Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖеĠPostgreSQL ¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ           
-       pgsql-patches ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£          
-       

ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓРPostgreSQL CVS ¹éµµ COMMIT µÄȨÏÞ¡£ËûÃǶ¼ÒѾ­Ìá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£

1.13)           

-               ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿
-           Çë·ÃÎÊ http://www.PostgreSQL.org/bugs/bugs.php          
-       µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£          
-       

ͬÑùÒ²Òª¿´¿´ÎÒÃǵĠftp Õ¾µã ftp://ftp.postgreSQL.org/pub£¬¿´ÓÐûÓиüеĠ          

-           PostgreSQL °æ±¾»ò²¹¶¡¡£          
-           

1.14) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿

          
-           ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£
-           
-               
ÌØÐÔ
-                   
-                       PostgreSQL ÓµÓдóÐÍÉÌÓàDBMS           
-                       Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£
-                       
-                         
ÐÔÄÜ
-                           
-                               PostgreSQL ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ           
-                               insert/update Ê±Âý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄÌØÐÔ ¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË           
-                               PostgreSQL ºÍ MySQL http://openacs.org/why-not-mysql.html¡£
        
-                               
¿É¿¿ÐÔ
-                                   
-                                       ÎÒÃÇÖªµÀ DBMS ±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾­¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔµĠbeta           
-                                       ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£
-                                       
-                                         
Ö§³Ö
-                                           
-                                               ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓàDBMS           
-                                               Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS           
-                                               »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 Ð¡½Ú¡££©          
-                                               
-                                                 
¼Û¸ñ
-                                                   
-                                                       ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ BSD ·ç¸ñµÄ°æÈ¨Íâ¡£        
-           
-        

1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿

        
-                                                       

×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL        

-                                                        ÒѾ­ÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc           
-                                                           Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£

-                                                       

¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£

-                                                       

ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ           

-                                                               http://store.pgsql.com/shopping/ ½øÐоèÔù¡£

          
-                                                       

ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö PostgreSQL           

-                                                           ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£

-           
-           
-               

Óû§¿Í»§¶ËÎÊÌâ

-           
-           

2.1) ÓРPostgreSQL µÄ ODBC Çý¶¯Ã´£¿

          
-       ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.

¿ÉÒÔÔÚhttp://gborg.postgresql.org/project/psqlodbc/projdisplay.php          

-       ÏÂÔØ PsqlODBC ¡£          
-       

OpenLink ODBC ¿ÉÒÔ´Ó http://www.openlinksw.com/          

-       »ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC ¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, Unix, VMS£©ÉÏʹÓàPostgreSQL           
-       ODBC¡£
-       

ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ           

-               [email protected]¡£
-           

2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò³Ã棿

          
-           Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£ºhttp://www.webreview.com          
-       ¡£          
-       

¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£ºhttp://www.php.net/          

-       ¡£          
-       

¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓàPerl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£          

-           

2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿

         
-           Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨http://www.pgaccess.com)£¬PgAdmin           
-           II £¨http://www.pgadmin.org£¬½öÊÊÓÃÓÚWin32£©£¬           
-           RHDB Admin (http://sources.redhat.com/rhdb/£©           
-           ÒÔ¼° Rekall £¨http://www.thekompany.com/products/rekall/£¬           
-           ×¨ÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨http://phppgadmin.sourceforge.net/£©          
-       £¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£          
-       

ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃæ£¬³ÆÎª PgAccess £¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ http://www.pgaccess.org/¡£

          
-       

2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL ´ò½»µÀ£¿

          
-       

´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£

          
-       

PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº

          
-       
    -           
  • -           C (libpq)          
    -           
  • -           Embedded C (ecpg)
    -           
  • -           Java (jdbc)
    -           
  • -           Python (PyGreSQL)
    -           
  • -               TCL (libpgtcl)
    -       
    -       

    ÆäËûµÄ½Ó¿ÚÔÚ http://gborg.postgresql.org ÉϵĠDrivers/Interfaces          

    -           Ð¡½Ú¡£

              
    -       
    -       
    -           

    ϵͳ¹ÜÀíÎÊÌâ

    -       
    -       

    3.1) ÎÒÔõÑùÄܰѠPostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿

              
    -       

    ÔÚÔËÐРconfigure Ê±¼ÓÉÏ --prefix Ñ¡Ïî¡£

              
    -       

    3.2) µ±ÎÒÔËÐРpostmaster Ê±£¬³öÏÖ Bad System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core           

    -           Dumped ´íÎó¡£ÎªÊ²Ã´£¿          
    -       

    Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£

              
    -       

    3.3) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿

              
    -       ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ postmaster           
    -       ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           
    -           PostgreSQL Administrator's Guide ¡£          
    -       

    3.4) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿

              
    -       

    Èç¹û´íÎóÐÅÏ¢ÊÇ IpcSemaphoreCreate: semget failed (No space left on device)£¬ÄÇôԭÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres           

    -           µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ postmaster¡£Ê¹Óÿª¹Ø -N ´øÒ»¸öÉÙÓÚȱʡֵ           
    -           32 µÄ²ÎÊýÔËÐРpostmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄں˵ĠSEMMNS ºÍ           
    -               SEMMNI ²ÎÊý¡£

              
    -       

    ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£

    -       

    Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           

    -               PostgreSQL Administrator's Guide ¡£

    3.5)           

    -               ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿
    -       

    ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà-i ¿ª¹ØÆô¶¯ postmaster£¬²¢ÇÒͨ¹ý¶ÔÓ¦µÄ±à¼­          

    -           $PGDATA/pg_hba.conf Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based £©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí           
    -           TCP/IP Á¬½Ó¡£

              
    -       

    3.6) ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿

              
    -       

    µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£EXPLAIN ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL           

    -           ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£

    -       

    Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ INSERT£¬¿¼ÂÇʹÓàCOPY ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö          

    -           INSERT ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ BEGIN WORK/COMMIT          
    -       ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£          
    -       

    »¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø -o -F Ñ¡ÏîÆô¶¯ postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óàfsync()          

    -           
    -       °ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£
    -       

    -       Ä㻹¿ÉÒÔʹÓàpostmaster -B Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster           
    -       ¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ­³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ 8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£

              

    -       Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£

    Ä㻹¿ÉÒÔʹÓà          

    -               CLUSTER ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£          
    -           

    3.7) PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿

              
    -       

    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¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö postgres PID          
    -           ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó psql ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ postgres µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖà          
    -           PGOPTIONS="-W n"£¬È»ºóÆô¶¯ psql¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù n          
    -       Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£          
    -       

    -       postgres ³ÌÐòÓР-s£¬-A£¬ºÍ -t Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓᣠ         
    -       

    Ä㻹¿ÉÒÔ´ø profiling Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile Îļþ½«·ÅÔÚ pgsql/data/base/dbname           

    -           Ä¿Â¼Ï¡£¿Í»§¶Ë profile Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling ÒªÔÚ±àÒëʱ¼ÓÉÏ-DLINUX_PROFILE           
    -           ¡£

    3.8)        

    -        ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡±ÏûÏ¢£¿         
    -       

    ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£

              
    -       

    ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ -N Öµ¿ª¹ØÆô¶¯ postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐ޸Ġpostgresql.conf          

    -       Îļþ¡£          
    -       

    ҪעÒâÈç¹ûÄã°Ñ -N ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó -B£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N           

    -           µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à Unix           
    -           ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬SHMMAX£¬ÐźŵƵÄ×î´óÊýÄ¿£¬SEMMNS
    -           ºÍ SEMMNI£¬×î´óµÄ½ø³ÌÊý£¬NPROC£¬µ¥Óû§×î´ó½ø³ÌÊý£¬MAXUPRC£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬NFILE          
    -           ºÍ NINODE          
    -       ¡£Postgres ¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖÆµÄÔ­ÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£

    ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ           

    -           64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐ޸Ġinclude/storage/sinvaladt.h ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐ           
    -           BUILD¡£
    -           

    3.9) pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿

              
    -       

    ¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã ORDER BY Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ           

    -           -S ²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£

              
    -       

    ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð postmaster ½«»áɾ³ýÕâЩÎļþ¡£          

    -           
    -           

    3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿

              
    -       

    -           PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2 Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó           
    -           7.2 µ½ 7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump           
    -           ½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£

    -       

    -           ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓàpg_upgrade ½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷ pg_upgrade          
    -           ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£

              
    -           
    -           
    -               

    ²Ù×÷ÎÊÌâ

    -           
    -           

    4.1)        

    -            ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿  
    -           ²ÎÔÄ DECLARE ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£          
    -           

    4.2)ÈçºÎÖ» SELECT Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿

              
    -           ²ÎÔÄ FETCH          
    -       ÊÖ²áÒ³£¬»òÕßʹÓàSELECT ... LIMIT....          
    -       

    ¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓРORDER BY µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë           

    -               ORDER BY Æ¥Å䣬PostgreSQL ¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£          
    -           

    4.3) ÎÒÈçºÎ»ñȡһ¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ psql Àï¿´µ½µÄ¶«Î÷£¿

              
    -           Äã¿ÉÒÔÔĶÁ psql µÄÔ´´úÂëÎļþpgsql/src/bin/psql/describe.c ¡£Ëü°üÀ¨ÎªÉú³É psql           
    -           µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø -E Ñ¡ÏîÆô¶¯ psql£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£          
    -           

    4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿

              
    -       

    7.3 ÀïÔö¼ÓÁË ALTER TABLE DROP COLUMN£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º

              
    -        
        BEGIN;
    +
    +
    +
    +
    +"HTML Tidy for BSD/OS (vers 12 April 2005), see www.w3.org" />
    +PostgreSQL FAQ-ch
    +
    +"text/html; CHARSET=gb2312" />
    +
    +
    +
    +"#000000" vlink="#A00000">
    +

    PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©

    +×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST
    +

    Ŀǰά»¤ÈËÔ±£ºBruce Momjian (

    +ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨[email protected] £©

    +

    ±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚ

    +"http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html
    +²é¿´¡£

    +

    ²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚ

    +"http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/Àï»Ø´ð¡£
    +

    +
    +
    +

    ³£¼ûÎÊÌâ

    +
    +1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿
    +1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?
    +1.3) PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿
    +1.4) ¿ÉÓõķǠUnix Æ½Ì¨ÓÐÄÇЩ£¿
    +1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿
    +1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿
    +1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿
    +1.8) ÓÐÄÄЩ¿ÉÓõĠPostgreSQL µÄÎĵµ£¿
    +1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG »òȱʧµÄÌØÐÔ£¿
    +1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL £¿
    +1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿
    +1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿
    +1.13) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿
    +1.14) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿
    +1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿
    +
    +

    Óû§¿Í»§¶ËÎÊÌâ

    +
    +2.1) ÓРPostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿
    +2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web
    +Ò³Ãæ£¿
    +2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿
    +2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL ´ò½»µÀ£¿
    +
    +

    ϵͳ¹ÜÀíÎÊÌâ

    +
    +3.1) ÎÒÔõÑùÄܰѠPostgreSQL ×°ÔÚ /usr/local/pgsql
    +ÒÔÍâµÄµØ·½£¿
    +3.2) µ±ÎÒÔËÐРpostmaster Ê±£¬³öÏÖ Bad System
    +Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿
    +3.3) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ
    +IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿
    +3.4) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ
    +IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿
    +3.5) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿
    +3.6)
    +ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿
    +3.7) PostgreSQL
    +Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿
    +3.8) ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many
    +clients¡± ÏûÏ¢£¿
    +3.9) pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿
    +3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö
    +dump ºÍ restore £¿
    +
    +

    ²Ù×÷ÎÊÌâ

    +
    +4.1)
    +¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿
    +4.2) ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿
    +4.3)
    +ÎÒÈçºÎ»ñȡһ¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ psql
    +Àï¿´µ½µÄ¶«Î÷£¿
    +4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿
    +4.5)
    +Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿
    +4.6)
    +´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿
    +4.7)
    +ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿
    +4.8)
    +ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿
    +4.9)
    +ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿
    +4.10) R-tree Ë÷ÒýÊÇʲô£¿
    +4.11) Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query
    +Optimization£©£¿
    +4.12)
    +ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿
    +
    +4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ
    +NULL£¿
    +4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿
    +4.15.1)
    +ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿
    +4.15.2)
    +ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿
    +4.15.3) Ê¹Óàcurrval() ºÍ nextval()
    +»áµ¼ÖÂºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿
    +4.15.4)
    +Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿
    +
    +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
    +º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿
    +4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
    +4.28) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
    +
    +

    À©Õ¹ PostgreSQL

    +
    +5.1) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql
    +ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿
    +5.2) ÎÒÈçºÎÄܸø PostgreSQL
    +¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿
    +5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿
    +5.4)
    +ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿
    +
    +
    +

    ³£¼ûÎÊÌâ

    +
    +

    1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿

    +PostgreSQL ¶Á×÷ Post-Gres-Q-L ¡£
    +

    PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿Ô­ÐÍ POSTGRES

    +Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES
    +µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á˵ĠSQL
    +×Ó¼¯È¡´úÁËÔ­ÏȵĠPostQuel ²éѯÓïÑÔ¡£PostgreSQL
    +ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£

    +

    PostgreSQL µÄ¿ª·¢ÓɲμӠPostgreSQL

    +¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄЭµ÷ÈËÊÇ Marc G. Fournier
    +£¨
    +£©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL
    +µÄËùÓпª·¢¡£

    +

    PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly

    +Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL
    +µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael Stonebraker
    +½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£

    +

    Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL

    +¹¦Äܺó£¬ËüµÄÃû×ָijɠPostgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ
    +PostgreSQL¡£

    +

    1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?

    +PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£
    +

    PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ

    +

    £¨PostgreSQL Data Base Management System£©

    +

    ²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é

    +²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶­ÊÂ

    +

    £¨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.£©
    +
    +ÉÏÃæ¾ÍÊÇ BSD
    +°æÈ¨ÉùÃ÷£¬Ò»¸ö¾­µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£

    +

    1.3) PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿

    +

    Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐРPostgreSQL

    +¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾­¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£

    +

    1.4) ¿ÉÓõķǠUnix Æ½Ì¨ÓÐÄÄЩ£¿

    +¿Í»§¶Ë
    +

    °Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS

    +Windows Æ½Ì¨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows
    +ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix
    +ƽ̨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É
    +Win32 libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒԺ͠ODBC ¿Í»§¶ËͨѶ¡£

    +

    ·þÎñÆ÷

    +

    Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ

    +Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See
    +pgsql/doc/FAQ_MSWIN Îļþ»ò 
    +"http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html
    +¡£

    +

    ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£

    +

    1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿

    +

    PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ 

    +"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£

    +

    1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL

    +µÄÖ§³Ö£¿
    +

    Ö÷ÒªµÄÓʼþÁбíÊÇ£º

    +"mailto:[email protected]">[email protected]¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйØ
    +PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª

    +
    +        subscribe
    +        end
    +
    +µÄÓʼþµ½ 
    +¡£
    +

    »¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º

    +"mailto:[email protected]">[email protected]£¬ÆäÄÚÈÝΪ£º

    +
    +        subscribe
    +        end
    +
    +ÿµ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£
    +

    »¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ 

    +"mailto:[email protected]">[email protected]£¬ÄÚÈÝΪ£º

    +
    +        subscribe
    +        end
    +
    +»¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ 
    +"mailto:[email protected]">[email protected]£¬ÄÚÈÝΪ£º
    +
    +        subscribe
    +        end
    +
    +ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW
    +Ö÷Ò³ÕÒµ½£º
    +
    +"http://postgresql.org/">http://postgresql.org/
    +ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ÆµµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓàunix
    +ÃüÁîirc -c '#PostgreSQL' "$USER" irc.phoenix.net
    +

    ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ 

    +"http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html
    +¡£

    +

    1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿

    +PostgreSQL ×îеİ汾Êǰ汾 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££©
    +

    ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£

    +

    1.8) ÓÐÄÄЩ¿ÉÓõĠPostgreSQL µÄÎĵµ£¿

    +ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc
    +Ŀ¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL
    +µÄÊֲᣬÔÚ 
    +"http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/
    +¡£
    +

    ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ 

    +"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html
    +ºÍ 
    +"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/
    +¡£ÔÚ 
    +"http://www.ca.PostgreSQL.org/books/">http://www.ca.PostgreSQL.org/books/
    +ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ 
    +"http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/
    +ÉÏÊÕ¼¯ÁËÓйؠPostgreSQL µÄ¼¼ÊõÎÄÕ¡£

    +

    psql ÓÐһЩ²»´íµÄ \d

    +ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£

    +

    ÎÒÃǵĠweb Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®

    +

    1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿

    +PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á˵ĠSQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃǵĠ
    +"http://www.postgresql.org/docs/todo.html">TODO 
    +"http://www.postgresql.org/docs/todo.html">ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£
    +

    1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿

    +ÔÚ 
    +"http://www.postgresql.org/docs/awbook.html">http://www.postgresql.org/docs/awbook.html
    +µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ
    +
    +"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook
    +ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ
    +"http://www.intermedia.net/support/sql/sqltut.shtm">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"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ 
    +"http://members.tripod.com/er4ebus/sql/index.htm">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 ¡£

    +

    1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿

    +ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC Ö®Ç°µÄÈÕÆÚ¡£
    +

    1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿

    +Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖеĠPostgreSQL
    +¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ pgsql-patches
    +ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£
    +

    ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓРPostgreSQL CVS ¹éµµ 

    +"-1">COMMIT
    +µÄȨÏÞ¡£ËûÃǶ¼ÒѾ­Ìá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£

    +

    1.13) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿

    +Çë·ÃÎÊ 
    +"http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php
    +µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£
    +

    ͬÑùÒ²Òª¿´¿´ÎÒÃǵĠftp Õ¾µã 

    +"ftp://ftp.postgresql.org/pub">ftp://ftp.postgreSQL.org/pub£¬¿´ÓÐûÓиüеÄ
    +PostgreSQL °æ±¾»ò²¹¶¡¡£

    +

    1.14) PostgreSQL ºÍÆäËû DBMS

    +±ÈÆðÀ´ÈçºÎ£¿
    +ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£
    +
    +
    ÌØÐÔ
    +
    PostgreSQL ÓµÓдóÐÍÉÌÓàDBMS
    +Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£
    +
    +
    ÐÔÄÜ
    +
    PostgreSQL
    +ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë
    +MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ insert/update
    +ʱÂý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄÌØÐÔ
    +¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË
    +PostgreSQL ºÍ MySQL 
    +"http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html¡£
    +
    +
    ¿É¿¿ÐÔ
    +
    ÎÒÃÇÖªµÀ DBMS
    +±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾­¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔµÄ
    +beta
    +²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£
    +
    +
    Ö§³Ö
    +
    +ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓÃ
    +DBMS
    +Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî
    +PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS
    +»¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö
    +FAQ Ìõ¿î 1.6 Ð¡½Ú¡££©
    +
    ¼Û¸ñ
    +
    +ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ
    +BSD ·ç¸ñµÄ°æÈ¨Íâ¡£
    +
    +

    1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿

    +

    ×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL

    +ÒѾ­ÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc
    +Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£

    +

    +¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£

    +

    +ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ
    +
    +"http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/
    +½øÐоèÔù¡£

    +

    ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö

    +PostgreSQL
    +ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£

    +
    +
    +

    Óû§¿Í»§¶ËÎÊÌâ

    +
    +

    2.1) ÓРPostgreSQL µÄ ODBC Çý¶¯Ã´£¿

    +ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.
    +

    ¿ÉÒÔÔÚ

    +"http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
    +ÏÂÔØ PsqlODBC ¡£

    +

    OpenLink ODBC ¿ÉÒÔ´Ó 

    +"http://www.openlinksw.com/">http://www.openlinksw.com/
    +»ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC
    +¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac,
    +Unix, VMS£©ÉÏʹÓàPostgreSQL ODBC¡£

    +

    ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö

    +freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ 
    +

    2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web

    +Ò³Ãæ£¿
    +Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£º
    +"http://www.webreview.com">http://www.webreview.com ¡£
    +

    ¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£º

    +"http://www.php.net/">http://www.php.net/ ¡£

    +

    ¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓàPerl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£

    +

    2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿

    +Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨
    +"http://www.pgaccess.com">http://www.pgaccess.com)£¬PgAdmin II
    +£¨
    +"http://www.pgadmin.org">http://www.pgadmin.org£¬½öÊÊÓÃÓÚWin32£©£¬
    +RHDB Admin (
    +"http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/£©
    +ÒÔ¼° Rekall £¨
    +"http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/£¬
    +רÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨
    +"http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/£©
    +£¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£
    +

    ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃæ£¬³ÆÎª PgAccess

    +£¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ 
    +"http://www.pgaccess.org/">http://www.pgaccess.org/¡£

    +

    2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL

    +´ò½»µÀ£¿
    +

    ´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL

    +µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£

    +

    PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº

    +
      +
    • C (libpq)
    • +
    • Embedded C (ecpg)
    • +
    • Java (jdbc)
    • +
    • Python (PyGreSQL)
    • +
    • TCL (libpgtcl)
    • +
      +

      ÆäËûµÄ½Ó¿ÚÔÚ 

      +"http://gborg.postgresql.org">http://gborg.postgresql.orgʃ쵀
      +Drivers/Interfaces Ð¡½Ú¡£

      +
      +
      +

      ϵͳ¹ÜÀíÎÊÌâ

      +
      +

      3.1) ÎÒÔõÑùÄܰѠPostgreSQL ×°ÔÚ

      +/usr/local/pgsql ÒÔÍâµÄµØ·½£¿
      +

      ÔÚÔËÐРconfigure Ê±¼ÓÉÏ --prefix Ñ¡Ïî¡£

      +

      3.2) µ±ÎÒÔËÐРpostmaster Ê±£¬³öÏÖ Bad

      +System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿
      +

      Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V

      +À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£

      +

      3.3) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ

      +IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿
      +ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ
      +postmaster
      +ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼
      +
      +"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL
      +Administrator's Guide ¡£
      +

      3.4) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ

      +IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿
      +

      Èç¹û´íÎóÐÅÏ¢ÊÇ IpcSemaphoreCreate: semget failed (No space

      +left on
      +device)£¬ÄÇôԭÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres
      +µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯
      +postmaster¡£Ê¹Óÿª¹Ø -N ´øÒ»¸öÉÙÓÚȱʡֵ 32 µÄ²ÎÊýÔËÐÐ
      +postmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄں˵Ġ
      +"-1">SEMMNS ºÍ SEMMNI ²ÎÊý¡£

      +

      ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£

      +

      +Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼
      +
      +"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL
      +Administrator's Guide ¡£

      +

      3.5) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿

      +

      ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix

      +ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà-i ¿ª¹ØÆô¶¯
      +postmaster£¬²¢ÇÒͨ¹ý¶ÔÓ¦µÄ±à¼­
      +$PGDATA/pg_hba.conf Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based
      +£©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí TCP/IP
      +Á¬½Ó¡£

      +

      3.6)

      +ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿
      +

      µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£EXPLAIN

      +ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL
      +ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£

      +

      Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ INSERT£¬¿¼ÂÇʹÓÃ

      +COPY
      +ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö 
      +"-1">INSERT ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ BEGIN
      +WORK/COMMIT
      +ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£

      +

      »¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø -o -F Ñ¡ÏîÆô¶¯

      +postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óàfsync()
      +°ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£

      +

      Ä㻹¿ÉÒÔʹÓàpostmaster -B

      +Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster
      +¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ­³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ
      +8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£

      +

      Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S

      +Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S
      +ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£

      +

      Ä㻹¿ÉÒÔʹÓàCLUSTER

      +ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER
      +µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£

      +

      3.7) PostgreSQL

      +Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿
      +

      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¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö
      +postgres PID
      +ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó psql
      +ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ postgres µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖÃ
      +PGOPTIONS="-W n"£¬È»ºóÆô¶¯ psql¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù n
      +Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£

      +

      postgres ³ÌÐòÓР-s£¬-A£¬ºÍ -t

      +Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓá£

      +

      Ä㻹¿ÉÒÔ´ø profiling

      +Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile
      +Îļþ½«·ÅÔÚ pgsql/data/base/dbname Ä¿Â¼Ï¡£¿Í»§¶Ë profile
      +Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling
      +ÒªÔÚ±àÒëʱ¼ÓÉÏ-DLINUX_PROFILE ¡£

      +

      3.8) ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too

      +many clients¡±ÏûÏ¢£¿
      +

      ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£

      +

      ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ -N Öµ¿ª¹ØÆô¶¯

      +postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐ޸Ġpostgresql.conf Îļþ¡£

      +

      ҪעÒâÈç¹ûÄã°Ñ -N ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó

      +-B£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N
      +µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à
      +Unix
      +ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬
      +"-1">SHMMAX£¬ÐźŵƵÄ×î´óÊýÄ¿£¬SEMMNS
      +ºÍ SEMMNI£¬×î´óµÄ½ø³ÌÊý£¬
      +"-1">NPROC£¬µ¥Óû§×î´ó½ø³ÌÊý£¬
      +"-1">MAXUPRC£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬
      +"-1">NFILE ºÍ NINODE ¡£Postgres
      +¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖÆµÄÔ­ÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£

      +

      ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ

      +64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐ޸Ġinclude/storage/sinvaladt.h
      +ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐ BUILD¡£

      +

      3.9) pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿

      +

      ¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã

      +ORDER BY Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ -S
      +²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£

      +

      +ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð
      +postmaster ½«»áɾ³ýÕâЩÎļþ¡£

      +

      3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö

      +dump ºÍ restore £¿
      +

      PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2

      +Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó 7.2 µ½
      +7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump
      +½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£

      +

      ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓàpg_upgrade

      +½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷
      +pg_upgrade ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£

      +
      +
      +

      ²Ù×÷ÎÊÌâ

      +
      +

      4.1)

      +¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿
      +²ÎÔÄ DECLARE ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£
      +

      4.2)ÈçºÎÖ» SELECT

      +Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿
      +²ÎÔÄ FETCH ÊÖ²áÒ³£¬»òÕßʹÓàSELECT ...
      +LIMIT....
      +

      ¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓÐ

      +ORDER BY µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë
      +ORDER BY Æ¥Å䣬PostgreSQL
      +¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£

      +

      4.3) ÎÒÈçºÎ»ñȡһ¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ

      +psql Àï¿´µ½µÄ¶«Î÷£¿
      +Äã¿ÉÒÔÔĶÁ psql
      +µÄÔ´´úÂëÎļþpgsql/src/bin/psql/describe.c ¡£Ëü°üÀ¨ÎªÉú³É
      +psql µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø -E Ñ¡ÏîÆô¶¯
      +psql£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£
      +

      4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿

      +

      7.3 ÀïÔö¼ÓÁË ALTER TABLE DROP

      +COLUMN£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º

      +
      +    BEGIN;
           LOCK TABLE old_table;
           SELECT ...  -- select all columns but the one you want to remove
           INTO TABLE new_table
           DROP TABLE old_table;
           ALTER TABLE new_table RENAME TO old_table;
           COMMIT;
      -
      -       

      4.5) Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿

                
      -       ÏÂÃæÊÇһЩÏÞÖÆ£º
          Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿   ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£©
      -    Ò»¸ö±íµÄ×î´ó³ß´ç£¿    16TB
      -    Ò»ÐеÄ×î´ó³ß´ç£¿      1.6TB
      +
      +

      4.5)

      +Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿
      +ÏÂÃæÊÇһЩÏÞÖÆ£º
      +
      +    Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿   ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£©
      +    Ò»¸ö±íµÄ×î´ó³ß´ç£¿    16TB
      +    Ò»ÐеÄ×î´ó³ß´ç£¿      1.6TB
            Ò»¸ö×ֶεÄ×î´ó³ß´ç?   1GB
      -    Ò»¸ö±íÀï×î´óÐÐÊý£¿     ÎÞÏÞÖÆ
      -    Ò»¸ö±íÀï×î´óÁÐÊý£¿     ¸úÁÐÀàÐÍÓйØ,250-1600
      -    Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ
      -       µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£
      -       

      -       ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1        
      -        GB µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£          
      -       

      Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K £¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£

                
      -       

      4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿

      -       Ò»¸ö Postgres Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣          
      -       

      ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼Óà2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ           

      -           PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:
           36 ×Ö½Ú: Ã¿ÐеÄÍ·£¨¹À¼ÆÖµ£©
      +    Ò»¸ö±íÀï×î´óÐÐÊý£¿     ÎÞÏÞÖÆ
      +    Ò»¸ö±íÀï×î´óÁÐÊý£¿     ¸úÁÐÀàÐÍÓйØ,250-1600
      +    Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ
      +
      +µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£
      +

      ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1 GB

      +µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£

      +

      Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K

      +£¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£

      +

      +"4.6">4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿

      +Ò»¸ö Postgres
      +Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣
      +

      ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000

      +ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼ÓÃ
      +2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:

      +
      +     36 ×Ö½Ú: Ã¿ÐеÄÍ·£¨¹À¼ÆÖµ£©
            24 ×Ö½Ú: Ò»¸öint×ֶκÍÒ»¸öÎı¾ÐÍ×Ö¶Î
          +  4 ×Ö½Ú: Ò³ÃæÄÚÖ¸ÏòÔª×éµÄÖ¸Õë
          ----------------------------------------
             128 ÐÐÿҳ
       
          782 Êý¾ÝÒ³ * 8192 ×Ö½Ú/Ò³  =  6,406,144 ×Ö½Ú£¨6.4 MB£©
      -          
      -       

      Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£

      -       

      ¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣

      -       

      4.7)        

      -        ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿  
      -        psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l           
      -       ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
      -       

      Ò²¿ÉÒÔÊÔÊÔÎļþ pgsql/src/tutorial/syscat.source¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ           

      -               SELECT¡£
      -           

      4.8) ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿

                
      -       

      -       ²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL           
      -       ±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓàVACUUM ANALYZE£¬»ò ANALYZE           
      -       »ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£
      -       

      -       Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY »òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£          
      -       

      µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY ½áºÏʹÓÃʱ¾­³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô           

      -           ORDER BY ºÍ LLIMIT Ê¹ÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº
                
      -           
      -            SELECT col
                
      -            FROM tab
                
      -            ORDER BY col [ DESC ]
                
      -            LIMIT 1;          
      -       

      µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ Ê±£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠 

      •  ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º
      •    
      -          
    • LIKE Ä£Ê½²»ÄÜÒÔ % ´òÍ·¡£
    • ~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£
    • -          
    • ×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£
    • ´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà4.12 ½ÚÃèÊöµÄº¯ÊýË÷Òý¡£
    • ÔÚ×ö initdb Ê±±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖàC locale¡£
    •           
      -           

      4.9)        

      -            ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿  
      -           ²Î¿¼ EXPLAIN ÊÖ²áÒ³¡£          
      -           

      4.10) R-tree Ë÷ÒýÊÇʲô£¿

                
      -       

      R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree           

      -           Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ           
      -           ¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£
      -           
      -           ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º
                
      -           
      -           Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching." Proc of           
      -           the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.          
      -           
      -           
      -           Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database Systems¡±ÀïÕÒµ½ÕâÆªÎÄÕ¡£
                
      -           
      -           ÏµÍ³ÄÚÖõĠR-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree ¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees           
      -           ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£

      4.11)        

      -        Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿         
      -       

      GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£          

      -           

      4.12)        

      -            ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿ 
      -        

      ²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎ޹صĠLIKE ±äÖÖ³ÉΪ ILIKE¡£
                

      -        
      -        ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º
      -        
      -            SELECT *
                
      -            FROM tab
                
      -            WHERE lower(col) = 'abc';
                
      -        
      -        ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:
      -        
      -            CREATE INDEX tabindex ON tab (lower(col));

               
      -        

      4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿

                
      -        

      ÓàIS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ 
               

      -        

      -        

      4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿

                
      -        

        ÀàÐÍ                   

      -        ÄÚ²¿Ãû³Æ             
      -        ËµÃ÷
      -          --------------------------------------------------
              
      -          "char"        char                
      -        1¸ö×Ö·û character
                
      -          CHAR(#)      bpchar              
      -        ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë
      -          VARCHAR(#)  varchar     Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë
               
      -          TEXT           text                
      -        ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ
      -          BYTEA          bytea                
      -        ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
      -        
      -        ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ 
      -        
      -        ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓàTOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£
                
      -        
      -        CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ NULL ×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£

                
      -        

      4.15.1) ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿

                
      -        

      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_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐеĠoid ×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓàpg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ 

               
      -        

      4.15.2)           

      -           ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿
      -        

      Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö 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 ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ <table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ 
               
      -        
      -        ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ SERIAL Öµ£¬ÀýÈ磬 
               
      -        
      -            execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
                
      -            new_id = execute("SELECT currval('person_id_seq')");
                
      -        
      -        ×îºó£¬Äã¿ÉÒÔʹÓôӠINSERT Óï¾ä·µ»ØµÄ OID 
      -        ²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓРEdmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ 

               
      -        

      4.15.3) Ê¹Óàcurrval() ºÍ nextval() »áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿

                
      -        

      ²»»á¡£currval() ·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£
                

      -        

      -        

      4.15.4)           

      -           ÎªÊ²Ã´²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿
      -        

      ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊøÖ®Ç°²»·âËø¡£Õâ¾Í»áµ¼ÖÂØ²ÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£

      -        


      -        4.16) Ê²Ã´ÊÇ OID£¿Ê²Ã´ÊÇ TID£¿          
      -        

      OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID ¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ 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 ÔÚÐб»¸ü¸Ä»òÖØÔØºó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£

                
      -        

      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()¡±£¿
      -        

      ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ postmaster Ö®Ç°ÊÔÊÔÏÂÃæµÄÃüÁ 
               

      -        
      -            ulimit -d 262144
                
      -            limit datasize 256m
                
      -        
      -        È¡¾öÓÚÄãÓõĠshell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£

                
      -        

      4.19)           

      -           ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐеĠPostgreSQL µÄ°æ±¾£¿          
      -        

      ´Ó psql À¼üÈë SELECT version()£»
                

      -        

      -        

      4.20)           

      -           ÎªÊ²Ã´ÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©£¿          
      -        

      ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄǰºó·ÅÉÏ BEGIN WORK ºÍ COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ 
               

      -        
      -        Ä¿Ç° PostgreSQL Ç¿ÖÆÊµÊ©ÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö invalid large obj descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔǰÄܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£ 
               
      -        
      -        Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£

                
      -        

      4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿

                
      -        

      ʹÓàCURRENT_TIMESTAMP£º
                

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

                
      -        

      4.22) ÎªÊ²Ã´Ê¹ÓàIN µÄ×Ó²éѯÕâôÂý£¿

                
      -        

      Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓàEXISTS Ìæ»» IN£º 
               

      -        
      -            SELECT *
                
      -            FROM tab
                
      -            WHERE col IN (SELECT subcol FROM subtab);
                
      -        
      -        ¸ÄΪ£º 
      -        
      -            SELECT *
                
      -            FROM tab
                
      -            WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
                
      -        
      -        ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£

                
      -        

      4.23) ÎÒÔõÑù½øÐРouter join £¨ÍâÁ¬½Ó£©£¿

                
      -        

      PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º
                

      -        
      -            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 OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER 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 ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£

                
      -        

      4.25)           

      -           ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿
      -        

      ¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓàrefcursors ·µ»Ø½á¹û¼¯¡£²Î¿´          

      -         http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html, 23.7.3.3½Ú¡£
                
      -        

      -        

      4.26) ÎªÊ²Ã´ÔÚ           

      -           PL/PgSQL º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿          
      -        

      PL/PgSQL          

      -        »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö PL/PgSQL          
      -        º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ          
      -        PL/PgSQL ÖÐÓàEXECUTE          
      -        ¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐǰ×ÜÊÇÖØÐ·ÖÎö¡£

      -        

      4.27)           

      -           ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
      -        

      Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³          

      -        http://gborg.PostgreSQL.org/genpage?replication_research           
      -        µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ  http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php          
      -        ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£

               
      -        

      4.28)           

      -           ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
      -        
      -        

      contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL          

      -        ²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ pg_hba.conf          
      -        ÖвÉÓàhostss ¡£ 
               
      -        
      -        7.3          
      -        °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ          
      -        postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION          
      -        Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£
      -        
      -        --------------------------------------------------------------------------------

      -        À©Õ¹ PostgreSQL          
      -        

      5.1)           

      -           ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿          
      -        

      ²úÉúÕâ¸öÎÊÌâµÄÔ­ÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£

      -        

      5.2) ÎÒÈçºÎÄܸø           

      -           PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿          
      -        

      ½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers          

      -        ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½ contrib/ ×ÓĿ¼¡£
               
      -        

      -        

      5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿

                
      -        

      ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL          

      -        Íêȫ֧³Ö·µ»ØÖµÎª±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼          
      -        ³ÌÐòÔ±Ö¸ÄÏ£¨the Programmer's Guide£©¡£ÔÚ contrib/tablefunc          
      -        ÖÐÓÐÒ»¸öÀý×ÓÊÇÓàC Ð´µÄ·µ»ØÖµÎª±íµÄº¯Êý¡£

               
      -        

      5.4)           

      -           ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿
      -        

       Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake 

      -        clean£¬ ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC 
      -        £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend 
      -        ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£

      -   
      -
      +
      +

      +Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£

      +

      ¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣

      +

      4.7)

      +ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿
      + psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\?
      +¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l
      +¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
      +

      Ò²¿ÉÒÔÊÔÊÔÎļþ

      +pgsql/src/tutorial/syscat.source¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ
      +SELECT¡£

      +

      4.8)

      +ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿
      +

      +²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL
      +±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓàVACUUM ANALYZE£¬»ò
      +ANALYZE
      +»ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£

      +

      Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY

      +»òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£

      +

      µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY

      +½áºÏʹÓÃʱ¾­³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ»
      +MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô ORDER BY ºÍ LLIMIT
      +ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº
      +
      +    SELECT col
      +    FROM tab
      +    ORDER BY col [ DESC ]
      +    LIMIT 1;

      +

      µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~

      +ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠 

      +
        +
      • ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º
      • +
      • LIKE Ä£Ê½²»ÄÜÒÔ % ´òÍ·¡£
      • +
      • ~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£
      • +
      • ×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£
      • +
      • ´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà4.12
      • +½ÚÃèÊöµÄº¯ÊýË÷Òý¡£
        +
      • ÔÚ×ö initdb Ê±±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖàC locale¡£
      • +
        +

        4.9)

        +ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿
        +²Î¿¼ EXPLAIN ÊÖ²áÒ³¡£
        +

        4.10) R-tree Ë÷ÒýÊÇʲô£¿

        +

        R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø

        +B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree
        +Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point
        +µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ
        +¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£
        +
        +ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º
        +
        +Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
        +Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
        +45-57.
        +
        +Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database
        +Systems¡±ÀïÕÒµ½ÕâÆªÎÄÕ¡£
        +
        +ϵͳÄÚÖõĠR-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree
        +¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees
        +ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£

        +

        4.11) Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query

        +Optimization£©£¿
        +

        GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic

        +Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£

        +

        4.12)

        +ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿
        +

        ²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~*

        +´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎ޹صĠLIKE ±äÖÖ³ÉΪ
        +ILIKE¡£
        +
        +´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º
        +
        +    SELECT *
        +    FROM tab
        +    WHERE lower(col) = 'abc';
        +
        +ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:
        +
        +    CREATE INDEX tabindex ON tab (lower(col));

        +

        4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ

        +NULL£¿
        +

        ÓàIS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ 

        +

        4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿

        +

          ÀàÐÍ            ÄÚ²¿Ãû³Æ    ËµÃ÷

        +  --------------------------------------------------
        +  "char"        char         1¸ö×Ö·û character
        +  CHAR(#)      bpchar      
        +¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë
        +  VARCHAR(#)  varchar    
        +Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë
        +  TEXT           text         ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ
        +  BYTEA          bytea       ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
        +
        +ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ 
        +
        +ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓÃ
        +TOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£
        +
        +CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n)
        +ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT
        +ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA
        +ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ NULL
        +×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£

        +

        4.15.1)

        +ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿
        +

        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_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐеÄ
        +oid
        +×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓÃ
        +pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ 

        +

        4.15.2)

        +ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿
        +

        Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö

        +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
        +±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ
        +<table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn
        +·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ 
        +
        +ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ
        +SERIAL Öµ£¬ÀýÈ磬 
        +
        +    execute("INSERT INTO person (name) VALUES ('Blaise
        +Pascal')");
        +    new_id = execute("SELECT currval('person_id_seq')");
        +
        +×îºó£¬Äã¿ÉÒÔʹÓôӠINSERT Óï¾ä·µ»ØµÄ OID
        +²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ
        +Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý
        +$sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ 

        +

        4.15.3) Ê¹Óàcurrval() ºÍ nextval()

        +»áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿
        +

        ²»»á¡£currval()

        +·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£

        +

        4.15.4)

        +Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿
        +

        +ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊøÖ®Ç°²»·âËø¡£Õâ¾Í»áµ¼ÖÂØ²ÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£

        +

        +4.16) Ê²Ã´ÊÇ OID£¿Ê²Ã´ÊÇ TID£¿
        +

        OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL

        +Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID
        +¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ 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
        +ÔÚÐб»¸ü¸Ä»òÖØÔØºó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£

        +

        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">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html
        +¡£  

        +

        4.18) ÎªÊ²Ã´ÎÒÊÕµ½´íÎó¡°ERROR: Memory

        +exhausted in AllocSetAlloc()¡±£¿
        +

        +ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯
        +postmaster Ö®Ç°ÊÔÊÔÏÂÃæµÄÃüÁ 
        +
        +    ulimit -d 262144
        +    limit datasize 256m
        +
        +È¡¾öÓÚÄãÓõÄ
        +shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£

        +

        4.19) ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐеĠPostgreSQL

        +µÄ°æ±¾£¿
        +

        ´Ó psql À¼üÈë SELECT version()£»

        +

        4.20)

        +ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°invalid large obj
        +descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©£¿
        +

        ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄǰºó·ÅÉÏ BEGIN WORK ºÍ

        +COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ 
        +
        +Ŀǰ PostgreSQL
        +Ç¿ÖÆÊµÊ©ÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö
        +invalid large obj
        +descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔǰÄܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£
        +
        +
        +Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£

        +

        4.21)

        +ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿
        +

        ʹÓàCURRENT_TIMESTAMP£º

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

        +

        4.22) ÎªÊ²Ã´Ê¹ÓàIN µÄ×Ó²éѯÕâôÂý£¿

        +

        +Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN
        +Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓàEXISTS Ìæ»» IN£º
        +
        +
        +    SELECT *
        +    FROM tab
        +    WHERE col IN (SELECT subcol FROM subtab);
        +
        +¸ÄΪ£º 
        +
        +    SELECT *
        +    FROM tab
        +    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol =
        +col);
        +
        +ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol
        +Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£

        +

        4.23) ÎÒÔõÑù½øÐРouter join

        +£¨ÍâÁ¬½Ó£©£¿
        +

        PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º

        +
        +    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
        +OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER
        +JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER
        +ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER
        +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
        +ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£

        +

        4.25) ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿

        +

        ¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓàrefcursors ·µ»Ø½á¹û¼¯¡£²Î¿´ 

        +"http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html">http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html,
        +23.7.3.3½Ú¡£

        +

        4.26) ÎªÊ²Ã´ÔÚ PL/PgSQL

        +º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿
        +

        PL/PgSQL »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö

        +PL/PgSQL
        +º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ
        +PL/PgSQL ÖÐÓàEXECUTE
        +¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐǰ×ÜÊÇÖØÐ·ÖÎö¡£

        +

        4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï

        +

        +Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³
        +
        +"http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research
        + µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ 
        +"http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
        +http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php
        +ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£

        +

        4.28) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï

        +

        contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL

        +²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ
        +pg_hba.conf ÖвÉÓàhostss ¡£ 
        +
        +7.3 °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ
        +postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION
        +Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£
        +
        +--------------------------------------------------------------------------------

        +À©Õ¹ PostgreSQL
        +

        5.1) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql

        +ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿
        +

        +²úÉúÕâ¸öÎÊÌâµÄÔ­ÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£

        +

        5.2) ÎÒÈçºÎÄܸø PostgreSQL

        +¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿
        +

        ½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½

        +contrib/ ×ÓĿ¼¡£

        +

        5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿

        +

        ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL

        +Íêȫ֧³Ö·µ»ØÖµÎª±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼ ³ÌÐòÔ±Ö¸ÄÏ£¨the
        +Programmer's Guide£©¡£ÔÚ contrib/tablefunc ÖÐÓÐÒ»¸öÀý×ÓÊÇÓàC
        +дµÄ·µ»ØÖµÎª±íµÄº¯Êý¡£

        +

        5.4)

        +ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿
        +

        Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake clean£¬

        +ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend
        +ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£

        +
        +