+<?xml version="1.0"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0063)file://I:\Wlzhang\MyDoc\postgresql\FAQcn.files\postgres-faq.htm -->
-<!-- saved from url=(0046)http://laser.zhengmai.com.cn/postgres-faq.html --><HTML><HEAD><TITLE>PostgreSQL
- FAQ-ch</TITLE>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312">
- <META content="Microsoft FrontPage 4.0" name="GENERATOR">
- </HEAD>
- <BODY aLink="#0000ff" bgColor="#ffffff" link="#ff0000" text="#000000" vLink="#a00000">
- <H1>PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©</H1>
- ×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST
- <P>Ŀǰά»¤ÈËÔ±£ºBruce Momjian (<A href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)
- <BR>
- ÖÐÎÄ°æά»¤ÈËÔ±£ººÎΰƽ £¨laser@pgsqldb.com
- £©<P>±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚ<a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>
- ²é¿´¡£<P>²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚ<a href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>Àï»Ø´ð¡£<br>
- <HR>
- <CENTER>
- <H2>³£¼ûÎÊÌâ</H2>
- </CENTER>
- <a href="#1.1">1.1</a>)
- PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿
- <BR>
- <a href="#1.2">1.2</a>)
- PostgreSQL µÄ°æȨÊÇʲô?
- <BR>
- <A href="#1.3">1.3</A>)
- PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿
- <BR>
- <A href="#1.4">1.4</A>) ¿ÉÓÃµÄ·Ç Unix
- ƽ̨ÓÐÄÇЩ£¿
- <BR>
- <A href="#1.5">1.5</A>) ÎÒ´ÓÄÄÀïÄܵõ½
- PostgreSQL£¿
- <BR>
- <A href="#1.6">1.6</A>) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô
- PostgreSQL µÄÖ§³Ö£¿
- <BR>
- <A href="#1.7">1.7</A>)
- PostgreSQL ×îеİ汾ÊÇʲô£¿
- <BR>
- <A href="#1.8">1.8</A>) ÓÐÄÄЩ¿ÉÓõÄ
- PostgreSQL µÄÎĵµ£¿
- <BR>
- <A href="#1.9">1.9</A>) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG
- »òȱʧµÄÌØÐÔ£¿
- <BR>
- <A href="#1.10">1.10</A>) ÎÒÓ¦¸ÃÔõÑùѧϰ
- SQL £¿
- <BR>
- <A href="#1.11">1.11</A>)
- PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿
- <BR>
- <A href="#1.12">1.12</A>)
- ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿
- <BR>
- <A href="#1.13">1.13</A>)
- ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿
- <BR>
- <A href="#1.14">1.14</A>)
- PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿<br>
- <a href="#1.15">1.15</a>) ÎÒÓ¦¸ÃÔõÑùÔÞÖú
- PostgreSQL £¿
- <CENTER>
- <H2>Óû§¿Í»§¶ËÎÊÌâ</H2>
- </CENTER>
- <A href="#2.1">2.1</A>) ÓÐ
- PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿
- <BR>
- <A href="#2.2">2.2</A>) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ
- PostgreSQL ÓÃÓÚ Web Ò³Ã棿
- <BR>
- <A href="#2.3">2.3</A>)
- PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿
- <BR>
- <A href="#2.4">2.4</A>)
- ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿
- <CENTER>
- <H2>ϵͳ¹ÜÀíÎÊÌâ</H2>
- </CENTER>
- <a href="#3.1">3.1</a>) ÎÒÔõÑùÄÜ°Ñ
- PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿
- <BR>
- <a href="#3.2">3.2</a>) µ±ÎÒÔËÐÐ
- postmaster ʱ£¬³öÏÖ<I> Bad System Call</I>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿
- <BR>
- <a href="#3.3">3.3</a>) µ±ÎÒÊÔͼÔËÐÐ
- postmaster ʱ£¬³öÏÖ <I>IpcMemoryCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿
- <BR>
- <a href="#3.4">3.4</a>) µ±ÎÒÊÔͼÔËÐÐ
- postmaster ʱ£¬³öÏÖ <I>IpcSemaphoreCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿
- <BR>
- <a href="#3.5">3.5</a>)
- ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿
- <BR>
- <a href="#3.6">3.6</a>)
- ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿
- <BR>
- <a href="#3.7">3.7</a>)
- PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿
- <BR>
- <a href="#3.8">3.8</a>)
- ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡± ÏûÏ¢£¿<br>
- <a href="#3.9">3.9</a>)
- pgsql_tmp Ŀ¼ÀﶼÓÐЩʲô£¿<br>
- <a href="#3.10">3.10</a>) ΪʲôҪÔÚÉý¼¶
- PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿
- <CENTER>
- <H2>²Ù×÷ÎÊÌâ</H2>
- </CENTER>
- <a href="#4.1">4.1</a>)
- ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿
- <BR>
- <a href="#4.2">4.2</a>)
- ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿
- <BR>
- <a href="#4.3">4.3</a>)
- ÎÒÈçºÎ»ñÈ¡Ò»¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <I>psql </I>Àï¿´µ½µÄ¶«Î÷£¿
- <BR>
- <a href="#4.4">4.4</a>)
- ÔõÑù´Ó±íÀïÃæɾ³ýÒ»ÁУ¿
- <BR>
- <a href="#4.5">4.5</a>)
- Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿
- <BR>
- <a href="#4.6">4.6</a>)
- ´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿
- <BR>
- <a href="#4.7">4.7</a>)
- ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿
- <BR>
- <a href="#4.8">4.8</a>)
- ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿
- <BR>
- <a href="#4.9">4.9</a>)
- ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿
- <BR>
- <a href="#4.10">4.10</a>) R-tree
- Ë÷ÒýÊÇʲô£¿
- <BR>
- <a href="#4.11">4.11</a>)
- ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿
- <BR>
- <a href="#4.12">4.12</a>)
- ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿
- <BR>
- <a href="#4.13">4.13</a>)
- ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿
- <BR>
- <a href="#4.14">4.14</a>)
- ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿
- <BR>
- <a href="#4.15.1">4.15.1</a>)
- ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿
- <BR>
- <a href="#4.15.2">4.15.2</a>)
- ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿
- <BR>
- <a href="#4.15.3">4.15.3</a>) ʹÓÃ
- currval() ºÍ nextval() »áµ¼ÖºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿<br>
- <a href="#4.15.4">4.15.4</a>)
- Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄÈ¡ÖµÖдæÔÚ¼ä¶ÏÄØ£¿
- <BR>
- <a href="#4.16">4.16</a>) ʲôÊÇ
- OID£¿Ê²Ã´ÊÇ TID £¿
- <BR>
- <a href="#4.17">4.17</a>)
- PostgreSQL ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿
- <BR>
- <a href="#4.18">4.18</a>)
- ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory exhausted in AllocSetAlloc()</i>¡±£¿<br>
- <a href="#4.19">4.19</a>)
- ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL µÄ°æ±¾£¿
- <BR>
- <a href="#4.20">4.20</a>)
- ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<I>invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</I>£¿
- <BR>
- <a href="#4.21">4.21</a>)
- ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿
- <BR>
- <a href="#4.22">4.22</a>) ΪʲôʹÓà <TT>IN</TT>
- µÄ×Ó²éѯÕâôÂý£¿
- <BR>
- <a href="#4.23">4.23</a>) ÈçºÎ½øÐÐ
- outer join £¨ÍâÁ¬½Ó£©£¿<br>
- <a href="#4.24">4.24</a>)
- ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿<br>
- <a href="#4.25">4.25</a>)
- ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿<br>
- <a href="#4.26">4.26</a>) ΪʲôÔÚ
- PL/PgSQL º¯ÊýÖв»ÄÜ¿É¿¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿<br>
- <a href="#4.27">4.27</a>)
- ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï<br>
- <a href="#4.28">4.28</a>)
- ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
- <CENTER>
- <H2>À©Õ¹ PostgreSQL</H2>
- </CENTER>
- <A href="#5.1">5.1</A>)
- ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ<I> psql</I> ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿
- <BR>
- <a href="#5.2">5.2</a>) ÎÒÈçºÎÄܸø
- PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿
- <BR>
- <a href="#5.3">5.3</a>)
- ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿
- <BR>
- <a href="#5.4">5.4</a>)
- ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØбàÒëºóûÓп´µ½¸Ä±ä£¿
- <BR>
- <HR>
- <CENTER>
- <H2>³£¼ûÎÊÌâ</H2>
- </CENTER>
- <H4><A name="1.1"></A>1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿</H4>
- PostgreSQL ¶Á×÷ <I>Post-Gres-Q-L</I><i> ¡£</i>
- <p>PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿ÔÐÍ POSTGRES Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES
- µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á赀 SQL ×Ó¼¯È¡´úÁËÔÏ鵀 PostQuel ²éѯÓïÑÔ¡£PostgreSQL
- ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂ붼¿ÉÒÔ»ñµÃ¡£</p>
- <P>PostgreSQL µÄ¿ª·¢ÓÉ²Î¼Ó PostgreSQL ¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄе÷ÈËÊÇ Marc G. Fournier £¨<A href="mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</A>
- £©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL µÄËùÓпª·¢¡£
- <P>
- PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly
- Chen¡£»¹ÓÐÐí¶àÆäËûÈËΪÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael
- Stonebraker ½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£
- <P>Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL ¹¦Äܺó£¬ËüµÄÃû×Ö¸Ä³É Postgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ
- PostgreSQL¡£
- <H4><A name="1.2"></A>1.2) PostgreSQL µÄ°æȨÊÇʲô?</H4>
- PostgreSQL ÊÜÏÂÃæµÄ°æȨԼÊø¡£
- <P>
- PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ
- <P>
- £¨PostgreSQL Data Base Management System£©<P>²¿·Ö°æȨ£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é<br>
- ²¿·Ö°æȨ£¨c£©1994-6 ¼ÓÖÝ´óѧ¶ÊÂ
- <P>£¨Portions copyright (c) 1996-2002, PostgreSQL Global Development Group<br>
- Portions Copyright (c) 1994-6 Regents of the University of California£©
- <P>
- ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓ㬲¢ÇÒÎÞÐëÇ©ÊðÒò´Ë¶ø²úÉúµÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæµÄ°æȨÉùÃ÷ºÍ±¾¶ÎÒÔ¼°ÏÂÃæÁ½¶ÎÎÄ×Ö³öÏÖÔÚËùÓп½±´ÖС£
- <P>
- £¨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.£©
- <P>
- ÔÚÈκÎÇé¿öÏ£¬¼ÓÖÝ´óѧ¶¼²»³Ðµ£ÒòʹÓôËÈí¼þ¼°ÆäÎĵµ¶øµ¼ÖµĶÔÈκε±ÊÂÈ˵ÄÖ±½ÓµÄ£¬¼ä½ÓµÄ£¬ÌØÊâµÄ£¬¸½¼ÓµÄ»òÕßÏà°é¶øÉúµÄË𻵣¬°üÀ¨ÀûÒæËðʧµÄÔðÈΣ¬¼´Ê¹¼ÓÖÝ´óѧÒѾ½¨ÒéÁËÕâЩËðʧµÄ¿ÉÄÜÐÔʱҲÊÇÈç´Ë¡£
- <P>
- £¨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.£©
- <P>
- ¼ÓÖÝ´óѧÃ÷È··ÅÆúÈκα£Ö¤£¬°üÀ¨µ«²»¾ÖÏÞÓÚijһÌض¨ÓÃ;µÄÉÌÒµºÍÀûÒæµÄÒþº¬±£Ö¤¡£ÕâÀïÌṩµÄÕâ·ÝÈí¼þÊÇ»ùÓÚ¡°µ±×÷ÊÇ¡±µÄ»ù´¡µÄ£¬Òò¶ø¼ÓÖÝ´óѧûÓÐÔðÈÎÌṩά»¤£¬Ö§³Ö£¬¸üУ¬ÔöÇ¿»òÕßÐ޸ĵķþÎñ¡£<P>£¨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.£©<br>
- <br>
- ÉÏÃæ¾ÍÊÇ BSD °æȨÉùÃ÷£¬Ò»¸ö¾µäµÄ¿ªÔ´°æȨÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£
- <H4><A name="1.3"></A>1.3) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿</H4>
- <p>Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈݵÄƽ̨¶¼ÄÜÔËÐÐ PostgreSQL ¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾¹ýÃ÷È·²âÊÔµÄƽ̨¡£</p>
- <H4><A name="1.4"></A>1.4) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÄЩ£¿</H4>
- ¿Í»§¶Ë
- <p>°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS Windows ƽ̨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows
- ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix ƽ̨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É Win32
- libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒÔºÍ ODBC ¿Í»§¶ËͨѶ¡£</p>
- <p>·þÎñÆ÷</p>
- <P>Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See <i>pgsql/doc/FAQ_MSWIN</i>
- Îļþ»ò <a href="http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</a>
- ¡£
- <P>ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£
- <H4><A name="1.5"></A>1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿</H4>
- <P>PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ <a href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</a>£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£
- <H4><A name="1.6"></A>1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿</H4>
- <P>Ö÷ÒªµÄÓʼþÁбíÊÇ£º<A href="mailto:pgsql-general@postgreSQL.org">pgsql-general@postgreSQL.org</A>¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйØ
- PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª
- <PRE> subscribe
- end</PRE>
- µÄÓʼþµ½ <A href="mailto:pgsql-general-request@postgreSQL.org">pgsql-general-request@postgreSQL.org</A>
- ¡£
- <P>»¹¿ÉÒÔ»ñÈ¡ÕªÒªÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º<A href="mailto:pgsql-general-digest-request@postgreSQL.org">pgsql-general-digest-request@postgreSQL.org</A>£¬ÆäÄÚÈÝΪ£º
- <PRE> subscribe
- end</PRE>
- ÿµ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£
- <P>»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <A href="mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</A>£¬ÄÚÈÝΪ£º
- <PRE> subscribe
- end</PRE>
- »¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <A href="mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</A>£¬ÄÚÈÝΪ£º
- <PRE> subscribe
- end</PRE>
- ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW Ö÷Ò³ÕÒµ½£º <BLOCKQUOTE><A href="http://postgresql.org/">http://postgresql.org/</A></BLOCKQUOTE>
- ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ƵµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓà unix ÃüÁî<TT>irc -c '#PostgreSQL' "$USER"
- irc.phoenix.net</TT>
- <P>ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ <a href="http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</a>
- ¡£
- <H4><A name="1.7"></A>1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿</H4>
- PostgreSQL ×îеİ汾ÊÇ°æ±¾ 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££©
- <P>ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£
- <H4><A name="1.8"></A>1.8) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿</H4>
- ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc Ŀ¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL
- µÄÊֲᣬÔÚ <a href="http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</a>
- ¡£<P>ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ <a href="http://www.PostgreSQL.org/docs/awbook.html">
- http://www.PostgreSQL.org/docs/awbook.html</a> ºÍ <a href="http://www.commandprompt.com/ppbook/">
- http://www.commandprompt.com/ppbook/</a> ¡£ÔÚ <a href="http://www.ca.PostgreSQL.org/books/">
- http://www.ca.PostgreSQL.org/books/</a> ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ <a href="http://techdocs.PostgreSQL.org/">
- http://techdocs.PostgreSQL.org/</a>
- ÉÏÊÕ¼¯ÁËÓÐ¹Ø PostgreSQL µÄ¼¼ÊõÎÄÕ¡£
- <P><I>psql</I>
- ÓÐһЩ²»´íµÄ \d ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£
- <P>ÎÒÃÇµÄ web Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®<H4><A name="1.9"></A>1.9)
- ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿</H4>
- PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á赀 SQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃÇµÄ <A href="http://www.postgresql.org/docs/todo.html">
- TODO</A> <A href="http://www.postgresql.org/docs/todo.html"></A>ÁÐ±í£¬»ñÈ¡Ò»¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£
- <H4><A name="1.10"></A>1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿</H4>
- ÔÚ <A href="http://www.postgresql.org/docs/awbook.html">http://www.postgresql.org/docs/awbook.html</A>
- µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔص½±¾µØÁË¡££©ÔÚ <a href="http://www.commandprompt.com/ppbook/">
- http://www.commandprompt.com/ppbook</a> ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ<a href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>£¬<a href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM </a>
- ºÍ <a href="http://sqlcourse.com/">http://sqlcourse.com</a>
- ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£
- <P>ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second Edition"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ <A href="http://members.tripod.com/er4ebus/sql/index.htm">
- http://members.tripod.com/er4ebus/sql/index.htm</A>
- <P>ÎÒÃǵÄÐí¶àÓû§Ï²»¶ <I>The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley ¡£ </I>
- ÆäËûµÄÓÐ<I> The Complete Reference SQL, Groff et al., McGraw-Hill ¡£</I>
- <H4><A name="1.11"></A>1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿</H4>
- ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC ֮ǰµÄÈÕÆÚ¡£
- <H4><A name="1.12"></A>1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿</H4>
- Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖÐµÄ PostgreSQL ¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ
- pgsql-patches ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£
- <P>ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓÐ PostgreSQL CVS ¹éµµ <FONT size="-1">COMMIT</FONT> µÄȨÏÞ¡£ËûÃǶ¼ÒѾÌá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£<H4><A name="1.13"></A>1.13)
- ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿</H4>
- Çë·ÃÎÊ <a href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</a>
- µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£
- <P>ͬÑùÒ²Òª¿´¿´ÎÒÃÇµÄ ftp Õ¾µã <A href="ftp://ftp.postgresql.org/pub">ftp://ftp.postgreSQL.org/pub</A>£¬¿´ÓÐûÓиüеÄ
- PostgreSQL °æ±¾»ò²¹¶¡¡£
- <H4><A name="1.14"></A>1.14) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿</H4>
- ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£
- <DL>
- <DT><B>ÌØÐÔ</B>
- <DD>
- PostgreSQL ÓµÓдóÐÍÉÌÓà DBMS
- Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£
- <BR>
- <DT><B>ÐÔÄÜ</B>
- <DD>
- PostgreSQL ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËƵÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ
- insert/update ʱÂý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄ<I>ÌØÐÔ </I>¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊÇ¿É¿¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË
- PostgreSQL ºÍ MySQL <A href="http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A>¡£<br>
- <DT><B>¿É¿¿ÐÔ</B>
- <DD>
- ÎÒÃÇÖªµÀ DBMS ±ØÐëÊÇ¿É¿¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔ嵀 beta
- ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£
- <BR>
- <DT><B>Ö§³Ö</B>
- <DD>
- ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà DBMS
- Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS
- »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 С½Ú¡££©
- <BR>
- <DT><B>¼Û¸ñ</B>
- <DD>
- ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖƵØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æȨÉùÃ÷ÀïÉùÃ÷µÄ BSD ·ç¸ñµÄ°æȨÍâ¡£
- </DL>
- <h4><a name="1.15"></a>1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿</h4>
- <p>×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL
- ÒѾÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc
- Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£</p>
- <p>¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîÄ¿Ç°½øµÄ»ìÂÒ¡£</p>
- <p>ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäÇ°½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ <a href="http://store.pgsql.com/shopping/">
- http://store.pgsql.com/shopping/</a> ½øÐоèÔù¡£</p>
- <p>ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö PostgreSQL
- ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌض¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£</p>
- <HR>
- <CENTER>
- <H2>Óû§¿Í»§¶ËÎÊÌâ</H2>
- </CENTER>
- <H4><A name="2.1"></A>2.1) ÓÐ PostgreSQL µÄ ODBC Çý¶¯Ã´£¿</H4>
- ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.<P>¿ÉÒÔÔÚ<a href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</a>
- ÏÂÔØ PsqlODBC ¡£
- <P>OpenLink ODBC ¿ÉÒÔ´Ó <A href="http://www.openlinksw.com/">http://www.openlinksw.com/</A>
- »ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC ¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, Unix, VMS£©ÉÏʹÓà PostgreSQL
- ODBC¡£
- <P>ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ <A href="mailto:postgres95@openlink.co.uk">
- postgres95@openlink.co.uk</A>¡£
- <H4><A name="2.2"></A>2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò³Ã棿</H4>
- Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£º<a href="http://www.webreview.com">http://www.webreview.com</a>
- ¡£
- <P>¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£º<A href="http://www.php.net/">http://www.php.net/</A>
- ¡£
- <P>¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓà Perl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£
- <H4><A name="2.3"></A>2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿</H4>
- Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨<a href="http://www.pgaccess.com">http://www.pgaccess.com</a>)£¬PgAdmin
- II £¨<a href="http://www.pgadmin.org">http://www.pgadmin.org</a>£¬½öÊÊÓÃÓÚWin32£©£¬
- RHDB Admin (<a href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</a>£©
- ÒÔ¼° Rekall £¨<a href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</a>£¬
- רÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨<a href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/£©</a>
- £¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£
- <p>ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃ棬³ÆΪ PgAccess £¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ <a href="http://www.pgaccess.org/">http://www.pgaccess.org/</a>¡£</p>
- <H4><A name="2.4"></A>2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿</H4>
- <p>´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£</p>
- <p>PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº</p>
- <ul>
- <li>
- C (libpq)
- <li>
- Embedded C (ecpg)
- <li>
- Java (jdbc)
- <li>
- Python (PyGreSQL)
- <li>
- TCL (libpgtcl)</li>
- </ul>
- <p>ÆäËûµÄ½Ó¿ÚÔÚ <a href="http://gborg.postgresql.org">http://gborg.postgresql.org</a> É쵀 <i>Drivers/Interfaces</i>
- С½Ú¡£</p>
- <HR>
- <CENTER>
- <H2>ϵͳ¹ÜÀíÎÊÌâ</H2>
- </CENTER>
- <H4><A name="3.1"></A>3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿</H4>
- <p>ÔÚÔËÐÐ configure ʱ¼ÓÉÏ --prefix Ñ¡Ïî¡£</p>
- <H4><A name="3.2"></A>3.2) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ<I> Bad System Call</I>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core
- Dumped ´íÎó¡£ÎªÊ²Ã´£¿</H4>
- <p>Õâ¿ÉÄÜÊǺܶ෽ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£</p>
- <H4><A name="3.3"></A>3.3) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ <I>IpcMemoryCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿</H4>
- ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ postmaster
- ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ <a href="http://www.postgresql.org/idocs/index.php?kernel-resources.html">
- PostgreSQL Administrator's Guide</a> ¡£
- <H4><A name="3.4"></A>3.4) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ <I>IpcSemaphoreCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿</H4>
- <p>Èç¹û´íÎóÐÅÏ¢ÊÇ <I>IpcSemaphoreCreate: semget failed (No space left on device)</I>£¬ÄÇôÔÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres
- µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ postmaster¡£Ê¹Óÿª¹Ø <I>-N</I> ´øÒ»¸öÉÙÓÚȱʡֵ
- 32 µÄ²ÎÊýÔËÐÐ postmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄÚºËµÄ <FONT size="-1">SEMMNS</FONT> ºÍ <FONT size="-1">
- SEMMNI</FONT> ²ÎÊý¡£</p>
- <p>ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£</p>
- <P>Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ <a href="http://www.postgresql.org/idocs/index.php?kernel-resources.html">
- PostgreSQL Administrator's Guide</a> ¡£<H4><A name="3.5"></A>3.5)
- ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿</H4>
- <p>ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà <I>-i</I> ¿ª¹ØÆô¶¯ <I>postmaster</I>£¬<B>²¢ÇÒ</B>ͨ¹ý¶ÔÓ¦µÄ±à¼
- <I>$PGDATA/pg_hba.conf</I> Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based £©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí
- TCP/IP Á¬½Ó¡£</p>
- <H4><A name="3.6"></A>3.6) ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿</H4>
- <p>µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£<FONT size="-1">EXPLAIN</FONT> ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL
- ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£</p>
- <P>Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ <FONT size="-1">INSERT</FONT>£¬¿¼ÂÇʹÓà <FONT size="-1">COPY</FONT> ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö
- <FONT size="-1">INSERT </FONT>¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ <FONT size="-1">BEGIN WORK/COMMIT</FONT>
- ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖؽ¨Ë÷Òý¡£
- <P>»¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø <I>-o -F</I> Ñ¡ÏîÆô¶¯ postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óà <I>fsync()
- </I>
- °ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£
- <P>
- Ä㻹¿ÉÒÔʹÓà postmaster -B Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster
- ¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ 8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£<P>
- Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£<P>Ä㻹¿ÉÒÔʹÓà <FONT size="-1">
- CLUSTER</FONT> ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£
- <H4><a name="3.7"></a>3.7) PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿</H4>
- <p>PostgreSQL Óм¸¸öÌØÐÔÓÃÓÚ±¨¸æ״̬ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶԵ÷ÊÔÓÃ;ºÜÓаïÖú¡£</p>
- <P>Ê×ÏÈ£¬Í¨¹ý¸½´ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬Óкܶà <I>assert()</I>
- ¼à¿Øºǫ́½ø³ÌºÍÔÚ·¢ÉúijЩδÔøÔ¤ÁϵÄÏÖÏóʱֹͣ³ÌÐòÔËÐС£
- <P>postmaster ºÍ postgres ¶¼ÓÐһЩ¿ÉÓõÄÑ¡Ïî¡£Ê×ÏÈ£¬µ±ÄãÆô¶¯ postmaster
- ʱ£¬È·±£Äã°Ñ±ê×¼Êä³öºÍ±ê×¼´íÎóÊä³ö¶¨Ïòµ½ÁËÒ»¸öÈÕÖ¾ÎļþÀïÈ¥ÁË£¬Ïó£º
- <PRE> cd /usr/local/pgsql
- ./bin/postmaster >server.log 2>&1 &</PRE>
- ÕâÑù½«ÔÚ PostgreSQL ¶¥¼¶Ä¿Â¼ÏÂÊä³öÒ»¸ö server.log Îļþ¡£Õâ¸öÎļþ°üº¬·þÎñÆ÷Åöµ½µÄÎÊÌâºÍ´íÎóµÄÓÐÓÃÐÅÏ¢¡£postmaster ÓÐÒ»¸ö
- -d Ñ¡Ï¸ÃÑ¡ÏîÔÊÐíÎÒÃÇ»ñµÃ¸ü¶àµÄϸ½Ú»ã±¨¡£-d Ñ¡Ïî½ÓÊÜÒ»¸öÊý×Ö±êÃ÷µ÷ÊÔ¼¶±ð¡£ÐèÒª¾¯¸æµÄÊǸߵĵ÷ÊÔ¼¶±ð¿ÉÄÜ»áÉú³É¾Þ´óµÄÈÕÖ¾Îļþ¡£<P>Èç¹û postmaster
- ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÉÏÆô¶¯ postgres ºǫ́½ø³Ì£¬È»ºóÖ±½Ó¼üÈë SQL Óï¾ä¡£ÎÒÃÇ<B>Ö»</B>
- ÍƼöÔÚµ÷ÊÔµÄʱºòÕâô¸É¡£Çë×¢ÒâÕâʱÓû»ÐÐÜÞ¶ø²»ÊǷֺűíʾÓï¾ä½áβ¡£Èç¹ûÄã´ø×ŵ÷ÊÔ·ûºÅ±àÒ룬Äã¿ÉÒÔʹÓÃÒ»¸öµ÷ÊÔÆ÷¹Û¿´·¢ÉúÁËʲôÊÂÇé¡£ÒòΪºǫ́½ø³ÌûÓÐÓÉ
- postmaster Æô¶¯µÄ£¬Ëü²»ÊǺÍʵ¼ÊµÄÔËÐл·¾³Ò»Ö£¬¶øÇÒËø¶¨/ºǫ́½»»¥ÎÊÌâ¿ÉÄܲ»ÄÜÖØÏÖ¡£
- <P>Èç¹û postmaster ÒѾÔËÐУ¬¿ÉÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯ <I>psql</I>£¬È»ºóÕÒ³ö <I>psql</I> ¶ÔÓ¦µÄ <I>postgres</I> ½ø³ÌµÄ
- <FONT size="-1">PID</FONT>¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö <I>postgres </I><FONT size="-1">PID</FONT>
- ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó <I>psql</I> ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ <I>postgres</I> µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖÃ
- PGOPTIONS="-W n"£¬È»ºóÆô¶¯ <I>psql</I>¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù <I>n</I>
- Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£
- <P>
- postgres ³ÌÐòÓÐ -s£¬-A£¬ºÍ -t Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓá£
- <P>Ä㻹¿ÉÒÔ´ø profiling Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile Îļþ½«·ÅÔÚ pgsql/data/base/dbname
- Ŀ¼Ï¡£¿Í»§¶Ë profile Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling ÒªÔÚ±àÒëʱ¼ÓÉÏ<i>-DLINUX_PROFILE </i>
- ¡£<H4><a name="3.8"></a>3.8)
- ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡±ÏûÏ¢£¿</H4>
- <p>ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£</p>
- <P>ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ <I>-N</I> Öµ¿ª¹ØÆô¶¯ postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐÞ¸Ä <i>postgresql.conf</i>
- Îļþ¡£
- <P>ҪעÒâÈç¹ûÄã°Ñ <I>-N</I> ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó <I>-B</I>£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N
- µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à Unix
- ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬<FONT size="-1">SHMMAX</FONT>£¬ÐźŵƵÄ×î´óÊýÄ¿£¬<FONT size="-1">SEMMNS</FONT>
- ºÍ <FONT size="-1">SEMMNI</FONT>£¬×î´óµÄ½ø³ÌÊý£¬<FONT size="-1">NPROC</FONT>£¬µ¥Óû§×î´ó½ø³ÌÊý£¬<FONT size="-1">MAXUPRC</FONT>£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬<FONT size="-1">NFILE</FONT>
- ºÍ <FONT size="-1">NINODE</FONT>
- ¡£Postgres ¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖƵÄÔÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£<P>ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ
- 64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐÞ¸Ä <I>include/storage/sinvaladt.h</I> ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐÂ
- BUILD¡£
- <H4><a name="3.9"></a>3.9) pgsql_tmp Ŀ¼ÀﶼÓÐЩʲô£¿</H4>
- <p>¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã <FONT size="-1">ORDER BY</FONT> Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ
- -S ²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£</p>
- <P>ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð postmaster ½«»áɾ³ýÕâЩÎļþ¡£
- <BR>
- <h4><a name="3.10"></a>3.10) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿</h4>
- <p>
- PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2 Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó
- 7.2 µ½ 7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump
- ½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØмÓÔز¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£</p>
- <p>
- ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓà <i>pg_upgrade</i> ½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷ <i>pg_upgrade</i>
- ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£</p>
- <HR>
- <CENTER>
- <H2>²Ù×÷ÎÊÌâ</H2>
- </CENTER>
- <H4><A name="4.1"></A>4.1)
- ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿</H4>
- ²ÎÔÄ <FONT size="-1">DECLARE</FONT> ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£
- <H4><a name="4.2"></a>4.2)ÈçºÎÖ» <FONT size="-1">SELECT</FONT> Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿</H4>
- ²ÎÔÄ <FONT size="-1">FETCH</FONT>
- ÊÖ²áÒ³£¬»òÕßʹÓà SELECT ... LIMIT....
- <P>¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓÐ <FONT size="-1">ORDER BY</FONT> µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë <FONT size="-1">
- ORDER BY</FONT> Æ¥Å䣬PostgreSQL ¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£
- <H4><a name="4.3"></a>4.3) ÎÒÈçºÎ»ñÈ¡Ò»¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <I>psql</I> Àï¿´µ½µÄ¶«Î÷£¿</H4>
- Äã¿ÉÒÔÔĶÁ <I>psql</I> µÄÔ´´úÂëÎļþ<I>pgsql/src/bin/psql/describe.c</I> ¡£Ëü°üÀ¨ÎªÉú³É psql
- µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø <I>-E</I> Ñ¡ÏîÆô¶¯ <I>psql</I>£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£
- <H4><a name="4.4"></a>4.4) ÔõÑù´Ó±íÀïÃæɾ³ýÒ»ÁУ¿</H4>
- <P>7.3 ÀïÔö¼ÓÁË <FONT size="-1">ALTER TABLE DROP COLUMN</FONT>£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔÇ°µÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º</P>
- <PRE> BEGIN;
+<!-- saved from url=(0046)http://laser.zhengmai.com.cn/postgres-faq.html -->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content=
+"HTML Tidy for BSD/OS (vers 12 April 2005), see www.w3.org" />
+<title>PostgreSQL FAQ-ch</title>
+<meta http-equiv="Content-Type" content=
+"text/html; CHARSET=gb2312" />
+<meta content="Microsoft FrontPage 4.0" name="GENERATOR" />
+</head>
+<body alink="#0000FF" bgcolor="#FFFFFF" link="#FF0000" text=
+"#000000" vlink="#A00000">
+<h1>PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©</h1>
+×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST
+<p>Ŀǰά»¤ÈËÔ±£ºBruce Momjian (<a href=
+"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br />
+ÖÐÎÄ°æά»¤ÈËÔ±£ººÎΰƽ £¨laser@pgsqldb.com £©</p>
+<p>±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚ<a href=
+"http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>
+²é¿´¡£</p>
+<p>²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚ<a href=
+"http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>Àï»Ø´ð¡£<br />
+</p>
+<hr />
+<center>
+<h2>³£¼ûÎÊÌâ</h2>
+</center>
+<a href="#1.1">1.1</a>) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿<br />
+<a href="#1.2">1.2</a>) PostgreSQL µÄ°æȨÊÇʲô?<br />
+<a href="#1.3">1.3</a>) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿<br />
+<a href="#1.4">1.4</a>) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÇЩ£¿<br />
+<a href="#1.5">1.5</a>) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿<br />
+<a href="#1.6">1.6</a>) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿<br />
+<a href="#1.7">1.7</a>) PostgreSQL ×îеİ汾ÊÇʲô£¿<br />
+<a href="#1.8">1.8</a>) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿<br />
+<a href="#1.9">1.9</a>) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG »òȱʧµÄÌØÐÔ£¿<br />
+<a href="#1.10">1.10</a>) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL £¿<br />
+<a href="#1.11">1.11</a>) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿<br />
+<a href="#1.12">1.12</a>) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿<br />
+<a href="#1.13">1.13</a>) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿<br />
+<a href="#1.14">1.14</a>) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿<br />
+<a href="#1.15">1.15</a>) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿
+<center>
+<h2>Óû§¿Í»§¶ËÎÊÌâ</h2>
+</center>
+<a href="#2.1">2.1</a>) ÓÐ PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿<br />
+<a href="#2.2">2.2</a>) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web
+Ò³Ã棿<br />
+<a href="#2.3">2.3</a>) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿<br />
+<a href="#2.4">2.4</a>) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿
+<center>
+<h2>ϵͳ¹ÜÀíÎÊÌâ</h2>
+</center>
+<a href="#3.1">3.1</a>) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ /usr/local/pgsql
+ÒÔÍâµÄµØ·½£¿<br />
+<a href="#3.2">3.2</a>) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ <i>Bad System
+Call</i>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿<br />
+<a href="#3.3">3.3</a>) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ
+<i>IpcMemoryCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿<br />
+<a href="#3.4">3.4</a>) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ
+<i>IpcSemaphoreCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿<br />
+<a href="#3.5">3.5</a>) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿<br />
+<a href="#3.6">3.6</a>)
+ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿<br />
+<a href="#3.7">3.7</a>) PostgreSQL
+Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿<br />
+<a href="#3.8">3.8</a>) ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many
+clients¡± ÏûÏ¢£¿<br />
+<a href="#3.9">3.9</a>) pgsql_tmp Ŀ¼ÀﶼÓÐЩʲô£¿<br />
+<a href="#3.10">3.10</a>) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö
+dump ºÍ restore £¿
+<center>
+<h2>²Ù×÷ÎÊÌâ</h2>
+</center>
+<a href="#4.1">4.1</a>)
+¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿<br />
+<a href="#4.2">4.2</a>) ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿<br />
+<a href="#4.3">4.3</a>)
+ÎÒÈçºÎ»ñÈ¡Ò»¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <i>psql</i>
+Àï¿´µ½µÄ¶«Î÷£¿<br />
+<a href="#4.4">4.4</a>) ÔõÑù´Ó±íÀïÃæɾ³ýÒ»ÁУ¿<br />
+<a href="#4.5">4.5</a>)
+Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿<br />
+<a href="#4.6">4.6</a>)
+´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿<br />
+<a href="#4.7">4.7</a>)
+ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿<br />
+<a href="#4.8">4.8</a>)
+ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿<br />
+<a href="#4.9">4.9</a>)
+ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿<br />
+<a href="#4.10">4.10</a>) R-tree Ë÷ÒýÊÇʲô£¿<br />
+<a href="#4.11">4.11</a>) ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query
+Optimization£©£¿<br />
+<a href="#4.12">4.12</a>)
+ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿<br />
+
+<a href="#4.13">4.13</a>) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ
+NULL£¿<br />
+<a href="#4.14">4.14</a>) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿<br />
+<a href="#4.15.1">4.15.1</a>)
+ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿<br />
+<a href="#4.15.2">4.15.2</a>)
+ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿<br />
+<a href="#4.15.3">4.15.3</a>) ʹÓà currval() ºÍ nextval()
+»áµ¼ÖºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿<br />
+<a href="#4.15.4">4.15.4</a>)
+Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄÈ¡ÖµÖдæÔÚ¼ä¶ÏÄØ£¿<br />
+
+<a href="#4.16">4.16</a>) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID £¿<br />
+<a href="#4.17">4.17</a>) PostgreSQL
+ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿<br />
+<a href="#4.18">4.18</a>) ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory
+exhausted in AllocSetAlloc()</i>¡±£¿<br />
+<a href="#4.19">4.19</a>) ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL
+µÄ°æ±¾£¿<br />
+<a href="#4.20">4.20</a>) ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<i>invalid
+large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</i>£¿<br />
+<a href="#4.21">4.21</a>)
+ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿<br />
+<a href="#4.22">4.22</a>) ΪʲôʹÓà <tt>IN</tt>
+µÄ×Ó²éѯÕâôÂý£¿<br />
+<a href="#4.23">4.23</a>) ÈçºÎ½øÐÐ outer join £¨ÍâÁ¬½Ó£©£¿<br />
+<a href="#4.24">4.24</a>) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿<br />
+<a href="#4.25">4.25</a>) ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿<br />
+<a href="#4.26">4.26</a>) ΪʲôÔÚ PL/PgSQL
+º¯ÊýÖв»ÄÜ¿É¿¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿<br />
+<a href="#4.27">4.27</a>) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï<br />
+<a href="#4.28">4.28</a>) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
+<center>
+<h2>À©Õ¹ PostgreSQL</h2>
+</center>
+<a href="#5.1">5.1</a>) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ <i>psql</i>
+ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿<br />
+<a href="#5.2">5.2</a>) ÎÒÈçºÎÄܸø PostgreSQL
+¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿<br />
+<a href="#5.3">5.3</a>) ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿<br />
+<a href="#5.4">5.4</a>)
+ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØбàÒëºóûÓп´µ½¸Ä±ä£¿<br />
+<hr />
+<center>
+<h2>³£¼ûÎÊÌâ</h2>
+</center>
+<h4><a name="1.1"></a>1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿</h4>
+PostgreSQL ¶Á×÷ <i>Post-Gres-Q-L</i> <i>¡£</i>
+<p>PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿ÔÐÍ POSTGRES
+Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES
+µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á赀 SQL
+×Ó¼¯È¡´úÁËÔÏ鵀 PostQuel ²éѯÓïÑÔ¡£PostgreSQL
+ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂ붼¿ÉÒÔ»ñµÃ¡£</p>
+<p>PostgreSQL µÄ¿ª·¢ÓÉ²Î¼Ó PostgreSQL
+¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄе÷ÈËÊÇ Marc G. Fournier
+£¨<a href=
+"mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</a>
+£©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL
+µÄËùÓпª·¢¡£</p>
+<p>PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly
+Chen¡£»¹ÓÐÐí¶àÆäËûÈËΪÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL
+µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael Stonebraker
+½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£</p>
+<p>Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL
+¹¦Äܺó£¬ËüµÄÃû×Ö¸Ä³É Postgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ
+PostgreSQL¡£</p>
+<h4><a name="1.2"></a>1.2) PostgreSQL µÄ°æȨÊÇʲô?</h4>
+PostgreSQL ÊÜÏÂÃæµÄ°æȨԼÊø¡£
+<p>PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ</p>
+<p>£¨PostgreSQL Data Base Management System£©</p>
+<p>²¿·Ö°æȨ£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é<br />
+²¿·Ö°æȨ£¨c£©1994-6 ¼ÓÖÝ´óѧ¶ÊÂ</p>
+<p>£¨Portions copyright (c) 1996-2002, PostgreSQL Global
+Development Group<br />
+ Portions Copyright (c) 1994-6 Regents of the University of
+California£©</p>
+<p>
+ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓ㬲¢ÇÒÎÞÐëÇ©ÊðÒò´Ë¶ø²úÉúµÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæµÄ°æȨÉùÃ÷ºÍ±¾¶ÎÒÔ¼°ÏÂÃæÁ½¶ÎÎÄ×Ö³öÏÖÔÚËùÓп½±´ÖС£</p>
+<p>£¨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.£©</p>
+<p>
+ÔÚÈκÎÇé¿öÏ£¬¼ÓÖÝ´óѧ¶¼²»³Ðµ£ÒòʹÓôËÈí¼þ¼°ÆäÎĵµ¶øµ¼ÖµĶÔÈκε±ÊÂÈ˵ÄÖ±½ÓµÄ£¬¼ä½ÓµÄ£¬ÌØÊâµÄ£¬¸½¼ÓµÄ»òÕßÏà°é¶øÉúµÄË𻵣¬°üÀ¨ÀûÒæËðʧµÄÔðÈΣ¬¼´Ê¹¼ÓÖÝ´óѧÒѾ½¨ÒéÁËÕâЩËðʧµÄ¿ÉÄÜÐÔʱҲÊÇÈç´Ë¡£</p>
+<p>£¨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.£©</p>
+<p>
+¼ÓÖÝ´óѧÃ÷È··ÅÆúÈκα£Ö¤£¬°üÀ¨µ«²»¾ÖÏÞÓÚijһÌض¨ÓÃ;µÄÉÌÒµºÍÀûÒæµÄÒþº¬±£Ö¤¡£ÕâÀïÌṩµÄÕâ·ÝÈí¼þÊÇ»ùÓÚ¡°µ±×÷ÊÇ¡±µÄ»ù´¡µÄ£¬Òò¶ø¼ÓÖÝ´óѧûÓÐÔðÈÎÌṩά»¤£¬Ö§³Ö£¬¸üУ¬ÔöÇ¿»òÕßÐ޸ĵķþÎñ¡£</p>
+<p>£¨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.£©<br />
+<br />
+ÉÏÃæ¾ÍÊÇ BSD
+°æȨÉùÃ÷£¬Ò»¸ö¾µäµÄ¿ªÔ´°æȨÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£</p>
+<h4><a name="1.3"></a>1.3) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿</h4>
+<p>Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈݵÄƽ̨¶¼ÄÜÔËÐÐ PostgreSQL
+¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾¹ýÃ÷È·²âÊÔµÄƽ̨¡£</p>
+<h4><a name="1.4"></a>1.4) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÄЩ£¿</h4>
+¿Í»§¶Ë
+<p>°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS
+Windows ƽ̨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows
+ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix
+ƽ̨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É
+Win32 libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒÔºÍ ODBC ¿Í»§¶ËͨѶ¡£</p>
+<p>·þÎñÆ÷</p>
+<p>Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ
+Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See
+<i>pgsql/doc/FAQ_MSWIN</i> Îļþ»ò <a href=
+"http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</a>
+¡£</p>
+<p>ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£</p>
+<h4><a name="1.5"></a>1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿</h4>
+<p>PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ <a href=
+"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</a>£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£</p>
+<h4><a name="1.6"></a>1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL
+µÄÖ§³Ö£¿</h4>
+<p>Ö÷ÒªµÄÓʼþÁбíÊÇ£º<a href=
+"mailto:pgsql-general@postgreSQL.org">pgsql-general@postgreSQL.org</a>¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйØ
+PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª</p>
+<pre>
+ subscribe
+ end
+</pre>
+µÄÓʼþµ½ <a href=
+"mailto:pgsql-general-request@postgreSQL.org">pgsql-general-request@postgreSQL.org</a>
+¡£
+<p>»¹¿ÉÒÔ»ñÈ¡ÕªÒªÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º<a href=
+"mailto:pgsql-general-digest-request@postgreSQL.org">pgsql-general-digest-request@postgreSQL.org</a>£¬ÆäÄÚÈÝΪ£º</p>
+<pre>
+ subscribe
+ end
+</pre>
+ÿµ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£
+<p>»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <a href=
+"mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</a>£¬ÄÚÈÝΪ£º</p>
+<pre>
+ subscribe
+ end
+</pre>
+»¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <a href=
+"mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</a>£¬ÄÚÈÝΪ£º
+<pre>
+ subscribe
+ end
+</pre>
+ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW
+Ö÷Ò³ÕÒµ½£º
+<blockquote><a href=
+"http://postgresql.org/">http://postgresql.org/</a></blockquote>
+ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ƵµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓà unix
+ÃüÁî<tt>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</tt>
+<p>ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ <a href=
+"http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</a>
+¡£</p>
+<h4><a name="1.7"></a>1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿</h4>
+PostgreSQL ×îеİ汾ÊÇ°æ±¾ 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££©
+<p>ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£</p>
+<h4><a name="1.8"></a>1.8) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿</h4>
+ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc
+Ŀ¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL
+µÄÊֲᣬÔÚ <a href=
+"http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</a>
+¡£
+<p>ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ <a href=
+"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a>
+ºÍ <a href=
+"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>
+¡£ÔÚ <a href=
+"http://www.ca.PostgreSQL.org/books/">http://www.ca.PostgreSQL.org/books/</a>
+ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ <a href=
+"http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</a>
+ÉÏÊÕ¼¯ÁËÓÐ¹Ø PostgreSQL µÄ¼¼ÊõÎÄÕ¡£</p>
+<p><i>psql</i> ÓÐһЩ²»´íµÄ \d
+ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£</p>
+<p>ÎÒÃÇµÄ web Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®</p>
+<h4><a name="1.9"></a>1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿</h4>
+PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á赀 SQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃÇµÄ <a href=
+"http://www.postgresql.org/docs/todo.html">TODO</a> <a href=
+"http://www.postgresql.org/docs/todo.html"></a>ÁÐ±í£¬»ñÈ¡Ò»¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£
+<h4><a name="1.10"></a>1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿</h4>
+ÔÚ <a href=
+"http://www.postgresql.org/docs/awbook.html">http://www.postgresql.org/docs/awbook.html</a>
+µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔص½±¾µØÁË¡££©ÔÚ
+<a href=
+"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook</a>
+ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ<a href=
+"http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>£¬<a href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+</a> ºÍ <a href="http://sqlcourse.com/">http://sqlcourse.com</a>
+ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£
+<p>ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second
+Edition"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ <a href=
+"http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a></p>
+<p>ÎÒÃǵÄÐí¶àÓû§Ï²»¶ <i>The Practical SQL Handbook, Bowman, Judith
+S., et al., Addison-Wesley ¡£</i> ÆäËûµÄÓÐ <i>The Complete
+Reference SQL, Groff et al., McGraw-Hill ¡£</i></p>
+<h4><a name="1.11"></a>1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿</h4>
+ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC ֮ǰµÄÈÕÆÚ¡£
+<h4><a name="1.12"></a>1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿</h4>
+Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖÐµÄ PostgreSQL
+¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ pgsql-patches
+ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£
+<p>ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓÐ PostgreSQL CVS ¹éµµ <font size=
+"-1">COMMIT</font>
+µÄȨÏÞ¡£ËûÃǶ¼ÒѾÌá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£</p>
+<h4><a name="1.13"></a>1.13) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿</h4>
+Çë·ÃÎÊ <a href=
+"http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</a>
+µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£
+<p>ͬÑùÒ²Òª¿´¿´ÎÒÃÇµÄ ftp Õ¾µã <a href=
+"ftp://ftp.postgresql.org/pub">ftp://ftp.postgreSQL.org/pub</a>£¬¿´ÓÐûÓиüеÄ
+PostgreSQL °æ±¾»ò²¹¶¡¡£</p>
+<h4><a name="1.14"></a>1.14) PostgreSQL ºÍÆäËû DBMS
+±ÈÆðÀ´ÈçºÎ£¿</h4>
+ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£
+<dl>
+<dt><b>ÌØÐÔ</b></dt>
+<dd>PostgreSQL ÓµÓдóÐÍÉÌÓà DBMS
+Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£<br />
+
+ </dd>
+<dt><b>ÐÔÄÜ</b></dt>
+<dd>PostgreSQL
+ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËƵÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë
+MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ insert/update
+ʱÂý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄ<i>ÌØÐÔ</i>
+¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊÇ¿É¿¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË
+PostgreSQL ºÍ MySQL <a href=
+"http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</a>¡£<br />
+</dd>
+<dt><b>¿É¿¿ÐÔ</b></dt>
+<dd>ÎÒÃÇÖªµÀ DBMS
+±ØÐëÊÇ¿É¿¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔµÄ
+beta
+²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£<br />
+
+ </dd>
+<dt><b>Ö§³Ö</b></dt>
+<dd>
+ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓÃ
+DBMS
+Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî
+PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS
+»¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö
+FAQ Ìõ¿î 1.6 С½Ú¡££©<br />
+ </dd>
+<dt><b>¼Û¸ñ</b></dt>
+<dd>
+ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖƵØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æȨÉùÃ÷ÀïÉùÃ÷µÄ
+BSD ·ç¸ñµÄ°æȨÍâ¡£</dd>
+</dl>
+<h4><a name="1.15"></a>1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿</h4>
+<p>×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL
+ÒѾÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc
+Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£</p>
+<p>
+¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîÄ¿Ç°½øµÄ»ìÂÒ¡£</p>
+<p>
+ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäÇ°½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ
+<a href=
+"http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</a>
+½øÐоèÔù¡£</p>
+<p>ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö
+PostgreSQL
+ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌض¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£</p>
+<hr />
+<center>
+<h2>Óû§¿Í»§¶ËÎÊÌâ</h2>
+</center>
+<h4><a name="2.1"></a>2.1) ÓÐ PostgreSQL µÄ ODBC Çý¶¯Ã´£¿</h4>
+ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.
+<p>¿ÉÒÔÔÚ<a href=
+"http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</a>
+ÏÂÔØ PsqlODBC ¡£</p>
+<p>OpenLink ODBC ¿ÉÒÔ´Ó <a href=
+"http://www.openlinksw.com/">http://www.openlinksw.com/</a>
+»ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC
+¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac,
+Unix, VMS£©ÉÏʹÓà PostgreSQL ODBC¡£</p>
+<p>ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö
+freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ <a href=
+"mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</a>¡£</p>
+<h4><a name="2.2"></a>2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web
+Ò³Ã棿</h4>
+Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£º<a href=
+"http://www.webreview.com">http://www.webreview.com</a> ¡£
+<p>¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£º<a href=
+"http://www.php.net/">http://www.php.net/</a> ¡£</p>
+<p>¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓà Perl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£</p>
+<h4><a name="2.3"></a>2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿</h4>
+Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨<a href=
+"http://www.pgaccess.com">http://www.pgaccess.com</a>)£¬PgAdmin II
+£¨<a href=
+"http://www.pgadmin.org">http://www.pgadmin.org</a>£¬½öÊÊÓÃÓÚWin32£©£¬
+RHDB Admin (<a href=
+"http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</a>£©
+ÒÔ¼° Rekall £¨<a href=
+"http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</a>£¬
+רÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨<a href=
+"http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/£©</a>
+£¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£
+<p>ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃ棬³ÆΪ PgAccess
+£¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ <a href=
+"http://www.pgaccess.org/">http://www.pgaccess.org/</a>¡£</p>
+<h4><a name="2.4"></a>2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL
+´ò½»µÀ£¿</h4>
+<p>´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL
+µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£</p>
+<p>PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº</p>
+<ul>
+<li>C (libpq)</li>
+<li>Embedded C (ecpg)</li>
+<li>Java (jdbc)</li>
+<li>Python (PyGreSQL)</li>
+<li>TCL (libpgtcl)</li>
+</ul>
+<p>ÆäËûµÄ½Ó¿ÚÔÚ <a href=
+"http://gborg.postgresql.org">http://gborg.postgresql.org</a> ÉϵÄ
+<i>Drivers/Interfaces</i> С½Ú¡£</p>
+<hr />
+<center>
+<h2>ϵͳ¹ÜÀíÎÊÌâ</h2>
+</center>
+<h4><a name="3.1"></a>3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ
+/usr/local/pgsql ÒÔÍâµÄµØ·½£¿</h4>
+<p>ÔÚÔËÐÐ configure ʱ¼ÓÉÏ --prefix Ñ¡Ïî¡£</p>
+<h4><a name="3.2"></a>3.2) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ <i>Bad
+System Call</i>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿</h4>
+<p>Õâ¿ÉÄÜÊǺܶ෽ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V
+À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£</p>
+<h4><a name="3.3"></a>3.3) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ
+<i>IpcMemoryCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿</h4>
+ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ
+postmaster
+ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼
+<a href=
+"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL
+Administrator's Guide</a> ¡£
+<h4><a name="3.4"></a>3.4) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ
+<i>IpcSemaphoreCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿</h4>
+<p>Èç¹û´íÎóÐÅÏ¢ÊÇ <i>IpcSemaphoreCreate: semget failed (No space
+left on
+device)</i>£¬ÄÇôÔÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres
+µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯
+postmaster¡£Ê¹Óÿª¹Ø <i>-N</i> ´øÒ»¸öÉÙÓÚȱʡֵ 32 µÄ²ÎÊýÔËÐÐ
+postmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄÚºËµÄ <font size=
+"-1">SEMMNS</font> ºÍ <font size="-1">SEMMNI</font> ²ÎÊý¡£</p>
+<p>ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£</p>
+<p>
+Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼
+<a href=
+"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL
+Administrator's Guide</a> ¡£</p>
+<h4><a name="3.5"></a>3.5) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿</h4>
+<p>ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix
+ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà <i>-i</i> ¿ª¹ØÆô¶¯
+<i>postmaster</i>£¬<b>²¢ÇÒ</b>ͨ¹ý¶ÔÓ¦µÄ±à¼
+<i>$PGDATA/pg_hba.conf</i> Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based
+£©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí TCP/IP
+Á¬½Ó¡£</p>
+<h4><a name="3.6"></a>3.6)
+ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿</h4>
+<p>µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£<font size="-1">EXPLAIN</font>
+ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL
+ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£</p>
+<p>Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ <font size="-1">INSERT</font>£¬¿¼ÂÇʹÓÃ
+<font size="-1">COPY</font>
+ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö <font size=
+"-1">INSERT</font> ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ <font size="-1">BEGIN
+WORK/COMMIT</font>
+ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖؽ¨Ë÷Òý¡£</p>
+<p>»¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø <i>-o -F</i> Ñ¡ÏîÆô¶¯
+postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óà <i>fsync()</i>
+°ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£</p>
+<p>Ä㻹¿ÉÒÔʹÓà postmaster -B
+Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster
+¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ
+8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£</p>
+<p>Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S
+Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S
+ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£</p>
+<p>Ä㻹¿ÉÒÔʹÓà <font size="-1">CLUSTER</font>
+ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER
+µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£</p>
+<h4><a name="3.7"></a>3.7) PostgreSQL
+Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿</h4>
+<p>PostgreSQL
+Óм¸¸öÌØÐÔÓÃÓÚ±¨¸æ״̬ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶԵ÷ÊÔÓÃ;ºÜÓаïÖú¡£</p>
+<p>Ê×ÏÈ£¬Í¨¹ý¸½´ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬Óкܶà
+<i>assert()</i>
+¼à¿Øºǫ́½ø³ÌºÍÔÚ·¢ÉúijЩδÔøÔ¤ÁϵÄÏÖÏóʱֹͣ³ÌÐòÔËÐС£</p>
+<p>postmaster ºÍ postgres ¶¼ÓÐһЩ¿ÉÓõÄÑ¡Ïî¡£Ê×ÏÈ£¬µ±ÄãÆô¶¯
+postmaster
+ʱ£¬È·±£Äã°Ñ±ê×¼Êä³öºÍ±ê×¼´íÎóÊä³ö¶¨Ïòµ½ÁËÒ»¸öÈÕÖ¾ÎļþÀïÈ¥ÁË£¬Ïó£º</p>
+<pre>
+ cd /usr/local/pgsql
+ ./bin/postmaster >server.log 2>&1 &
+</pre>
+ÕâÑù½«ÔÚ PostgreSQL ¶¥¼¶Ä¿Â¼ÏÂÊä³öÒ»¸ö server.log
+Îļþ¡£Õâ¸öÎļþ°üº¬·þÎñÆ÷Åöµ½µÄÎÊÌâºÍ´íÎóµÄÓÐÓÃÐÅÏ¢¡£postmaster
+ÓÐÒ»¸ö -d Ñ¡Ï¸ÃÑ¡ÏîÔÊÐíÎÒÃÇ»ñµÃ¸ü¶àµÄϸ½Ú»ã±¨¡£-d
+Ñ¡Ïî½ÓÊÜÒ»¸öÊý×Ö±êÃ÷µ÷ÊÔ¼¶±ð¡£ÐèÒª¾¯¸æµÄÊǸߵĵ÷ÊÔ¼¶±ð¿ÉÄÜ»áÉú³É¾Þ´óµÄÈÕÖ¾Îļþ¡£
+<p>Èç¹û postmaster ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÉÏÆô¶¯ postgres
+ºǫ́½ø³Ì£¬È»ºóÖ±½Ó¼üÈë SQL Óï¾ä¡£ÎÒÃÇ<b>Ö»</b>
+ÍƼöÔÚµ÷ÊÔµÄʱºòÕâô¸É¡£Çë×¢ÒâÕâʱÓû»ÐÐÜÞ¶ø²»ÊǷֺűíʾÓï¾ä½áβ¡£Èç¹ûÄã´ø×ŵ÷ÊÔ·ûºÅ±àÒ룬Äã¿ÉÒÔʹÓÃÒ»¸öµ÷ÊÔÆ÷¹Û¿´·¢ÉúÁËʲôÊÂÇé¡£ÒòΪºǫ́½ø³ÌûÓÐÓÉ
+postmaster
+Æô¶¯µÄ£¬Ëü²»ÊǺÍʵ¼ÊµÄÔËÐл·¾³Ò»Ö£¬¶øÇÒËø¶¨/ºǫ́½»»¥ÎÊÌâ¿ÉÄܲ»ÄÜÖØÏÖ¡£</p>
+<p>Èç¹û postmaster ÒѾÔËÐУ¬¿ÉÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯
+<i>psql</i>£¬È»ºóÕÒ³ö <i>psql</i> ¶ÔÓ¦µÄ <i>postgres</i> ½ø³ÌµÄ
+<font size="-1">PID</font>¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö
+<i>postgres</i> <font size="-1">PID</font>
+ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó <i>psql</i>
+ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ <i>postgres</i> µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖÃ
+PGOPTIONS="-W n"£¬È»ºóÆô¶¯ <i>psql</i>¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù <i>n</i>
+Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£</p>
+<p>postgres ³ÌÐòÓÐ -s£¬-A£¬ºÍ -t
+Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓá£</p>
+<p>Ä㻹¿ÉÒÔ´ø profiling
+Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile
+Îļþ½«·ÅÔÚ pgsql/data/base/dbname Ŀ¼Ï¡£¿Í»§¶Ë profile
+Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling
+ÒªÔÚ±àÒëʱ¼ÓÉÏ<i>-DLINUX_PROFILE</i> ¡£</p>
+<h4><a name="3.8"></a>3.8) ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too
+many clients¡±ÏûÏ¢£¿</h4>
+<p>ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£</p>
+<p>ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ <i>-N</i> Öµ¿ª¹ØÆô¶¯
+postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐÞ¸Ä <i>postgresql.conf</i> Îļþ¡£</p>
+<p>ҪעÒâÈç¹ûÄã°Ñ <i>-N</i> ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó
+<i>-B</i>£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N
+µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à
+Unix
+ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬<font size=
+"-1">SHMMAX</font>£¬ÐźŵƵÄ×î´óÊýÄ¿£¬<font size="-1">SEMMNS</font>
+ºÍ <font size="-1">SEMMNI</font>£¬×î´óµÄ½ø³ÌÊý£¬<font size=
+"-1">NPROC</font>£¬µ¥Óû§×î´ó½ø³ÌÊý£¬<font size=
+"-1">MAXUPRC</font>£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬<font size=
+"-1">NFILE</font> ºÍ <font size="-1">NINODE</font> ¡£Postgres
+¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖƵÄÔÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£</p>
+<p>ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ
+64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐÞ¸Ä <i>include/storage/sinvaladt.h</i>
+ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØРBUILD¡£</p>
+<h4><a name="3.9"></a>3.9) pgsql_tmp Ŀ¼ÀﶼÓÐЩʲô£¿</h4>
+<p>¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã
+<font size="-1">ORDER BY</font> Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ -S
+²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£</p>
+<p>
+ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð
+postmaster ½«»áɾ³ýÕâЩÎļþ¡£<br /></p>
+<h4><a name="3.10"></a>3.10) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö
+dump ºÍ restore £¿</h4>
+<p>PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2
+Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó 7.2 µ½
+7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump
+½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØмÓÔز¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£</p>
+<p>´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓà <i>pg_upgrade</i>
+½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷
+<i>pg_upgrade</i> ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£</p>
+<hr />
+<center>
+<h2>²Ù×÷ÎÊÌâ</h2>
+</center>
+<h4><a name="4.1"></a>4.1)
+¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿</h4>
+²ÎÔÄ <font size="-1">DECLARE</font> ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£
+<h4><a name="4.2"></a>4.2)ÈçºÎÖ» <font size="-1">SELECT</font>
+Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿</h4>
+²ÎÔÄ <font size="-1">FETCH</font> ÊÖ²áÒ³£¬»òÕßʹÓà SELECT ...
+LIMIT....
+<p>¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓÐ
+<font size="-1">ORDER BY</font> µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë
+<font size="-1">ORDER BY</font> Æ¥Å䣬PostgreSQL
+¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£</p>
+<h4><a name="4.3"></a>4.3) ÎÒÈçºÎ»ñÈ¡Ò»¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ
+<i>psql</i> Àï¿´µ½µÄ¶«Î÷£¿</h4>
+Äã¿ÉÒÔÔĶÁ <i>psql</i>
+µÄÔ´´úÂëÎļþ<i>pgsql/src/bin/psql/describe.c</i> ¡£Ëü°üÀ¨ÎªÉú³É
+psql µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø <i>-E</i> Ñ¡ÏîÆô¶¯
+<i>psql</i>£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£
+<h4><a name="4.4"></a>4.4) ÔõÑù´Ó±íÀïÃæɾ³ýÒ»ÁУ¿</h4>
+<p>7.3 ÀïÔö¼ÓÁË <font size="-1">ALTER TABLE DROP
+COLUMN</font>£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔÇ°µÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º</p>
+<pre>
+ 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;
-</PRE>
- <H4><a name="4.5"></a>4.5) Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿</H4>
- ÏÂÃæÊÇһЩÏÞÖÆ£º<PRE> Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿ ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£©
- Ò»¸ö±íµÄ×î´ó³ß´ç£¿ 16TB
- Ò»ÐеÄ×î´ó³ß´ç£¿ 1.6TB
+</pre>
+<h4><a name="4.5"></a>4.5)
+Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿</h4>
+ÏÂÃæÊÇһЩÏÞÖÆ£º
+<pre>
+ Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿ ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£©
+ Ò»¸ö±íµÄ×î´ó³ß´ç£¿ 16TB
+ Ò»ÐеÄ×î´ó³ß´ç£¿ 1.6TB
Ò»¸ö×ֶεÄ×î´ó³ß´ç? 1GB
- Ò»¸ö±íÀï×î´óÐÐÊý£¿ ÎÞÏÞÖÆ
- Ò»¸ö±íÀï×î´óÁÐÊý£¿ ¸úÁÐÀàÐÍÓйØ,250-1600
- Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ</PRE>
- µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£
- <P>
- ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1
- GB µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£
- <P>Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K £¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£</P>
- <H4><a name="4.6"></a>4.6)´æ´¢Ò»¸öµäÐ͵ÄƽÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿</H4>
- Ò»¸ö Postgres Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öƽÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣
- <P>ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼Óà 2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ
- PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:<PRE> 36 ×Ö½Ú: ÿÐеÄÍ·£¨¹À¼ÆÖµ£©
+ Ò»¸ö±íÀï×î´óÐÐÊý£¿ ÎÞÏÞÖÆ
+ Ò»¸ö±íÀï×î´óÁÐÊý£¿ ¸úÁÐÀàÐÍÓйØ,250-1600
+ Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ
+</pre>
+µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£
+<p>±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1 GB
+µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£</p>
+<p>Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K
+£¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£</p>
+<h4><a name=
+"4.6"></a>4.6)´æ´¢Ò»¸öµäÐ͵ÄƽÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿</h4>
+Ò»¸ö Postgres
+Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öƽÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣
+<p>ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000
+ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼ÓÃ
+2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:</p>
+<pre>
+ 36 ×Ö½Ú: ÿÐеÄÍ·£¨¹À¼ÆÖµ£©
24 ×Ö½Ú: Ò»¸öint×ֶκÍÒ»¸öÎı¾ÐÍ×Ö¶Î
+ 4 ×Ö½Ú: Ò³ÃæÄÚÖ¸ÏòÔª×éµÄÖ¸Õë
----------------------------------------
128 ÐÐÿҳ
782 Êý¾ÝÒ³ * 8192 ×Ö½Ú/Ò³ = 6,406,144 ×Ö½Ú£¨6.4 MB£©
-</PRE>
- <P>Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£</P>
- <P>¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣</P>
- <H4><a name="4.7"></a>4.7)
- ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿</H4>
- <I> psql</I> ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l
- ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
- <P>Ò²¿ÉÒÔÊÔÊÔÎļþ <I>pgsql/src/tutorial/syscat.source</I>¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ <FONT size="-1">
- SELECT</FONT>¡£
- <H4><a name="4.8"></a>4.8) ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿</H4>
- <P>
- ²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL
- ±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓà VACUUM ANALYZE£¬»ò ANALYZE
- »ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£
- <P>
- Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY »òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£
- <P>µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY ½áºÏʹÓÃʱ¾³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô
- ORDER BY ºÍ LLIMIT ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº<BR>
- <BR>
- SELECT col<BR>
- FROM tab<BR>
- ORDER BY col [ DESC ]<BR>
- LIMIT 1;
- <P>µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌض¨µÄÇé¿öÏÂʹÓ㺠<ul><li> ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º</li>
- <li>LIKE ģʽ²»ÄÜÒÔ % ´òÍ·¡£</li><li>~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£</li>
- <li>×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£</li><li>´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà 4.12 ½ÚÃèÊöµÄº¯ÊýË÷Òý¡£</li><li>ÔÚ×ö initdb ʱ±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖà C locale¡£</li></ul>
- <H4><a name="4.9"></a>4.9)
- ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿</H4>
- ²Î¿¼ <FONT size="-1">EXPLAIN</FONT> ÊÖ²áÒ³¡£
- <H4><a name="4.10"></a>4.10) R-tree Ë÷ÒýÊÇʲô£¿</H4>
- <P>R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree
- Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ
- ¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£<BR>
- <BR>
- ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º<BR>
- <BR>
- 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.
- <BR>
- <BR>
- Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database Systems¡±ÀïÕÒµ½ÕâƪÎÄÕ¡£<BR>
- <BR>
- ϵͳÄÚÖÃµÄ R-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree ¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees
- ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£<H4><a name="4.11"></a>4.11)
- ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿</H4>
- <P>GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£
- <H4><a name="4.12"></a>4.12)
- ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿</H4>
- <p>²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎÞ¹ØµÄ LIKE ±äÖÖ³ÉΪ ILIKE¡£<br>
- <br>
- ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º<br>
- <br>
- SELECT *<br>
- FROM tab<br>
- WHERE lower(col) = 'abc';<br>
- <br>
- ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:<br>
- <br>
- CREATE INDEX tabindex ON tab (lower(col));</p>
- <h4><a name="4.13"></a>4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿</h4>
- <p>Óà IS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ <br>
- </p>
- <h4><a name="4.14"></a>4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿</h4>
- <p> ÀàÐÍ
- ÄÚ²¿Ãû³Æ
- ˵Ã÷<br>
- --------------------------------------------------<br>
- "char" char
- 1¸ö×Ö·û character<br>
- CHAR(#) bpchar
- ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë<br>
- VARCHAR(#) varchar Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë<br>
- TEXT text
- ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ<br>
- BYTEA bytea
- ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©<br>
- <br>
- ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ <br>
- <br>
- ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓà TOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅÌ¿Õ¼äÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£<br>
- <br>
- CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT ÊÊÓÃÓÚ´æ´¢²»ÏÞÖƳ¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊÇ°üº¬ NULL ×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£</p>
- <h4><a name="4.15.1"></a>4.15.1) ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿</h4>
- <p>PostgreSQL Ö§³Ö SERIAL Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬<br>
- CREATE TABLE person ( <br>
- id SERIAL, <br>
- name TEXT <br>
- );<br>
- <br>
- »á×Ô¶¯×ª»»Îª£º <br>
- <br>
- CREATE SEQUENCE person_id_seq;<br>
- CREATE TABLE person ( <br>
- id INT4 NOT NULL DEFAULT nextval('person_id_seq'),<br>
- name TEXT <br>
- );<br>
- CREATE UNIQUE INDEX person_id_key ON person ( id );<br>
- <br>
- ²Î¿¼ create_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐÐµÄ oid ×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓà pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ </p>
- <h4><a name="4.15.2"></a>4.15.2)
- ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿</h4>
- <p>Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓÃ
- <a href="#4.15.1"> 4.15.1</a> ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º <br>
- <br>
- new_id = execute("SELECT nextval('person_id_seq')");<br>
- execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");<br>
- <br>
- ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ <table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ <br>
- <br>
- ÀàËƵģ¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ SERIAL Öµ£¬ÀýÈ磬 <br>
- <br>
- execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");<br>
- new_id = execute("SELECT currval('person_id_seq')");<br>
- <br>
- ×îºó£¬Äã¿ÉÒÔʹÓÃ´Ó INSERT Óï¾ä·µ»ØµÄ <a href="4.16">OID</a>
- ²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ </p>
- <h4><a name="4.15.3"></a>4.15.3) ʹÓà currval() ºÍ nextval() »áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿</h4>
- <p>²»»á¡£currval() ·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£<br>
- </p>
- <h4><a name="4.15.4"></a>4.15.4)
- Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄÈ¡ÖµÖдæÔÚ¼ä¶ÏÄØ£¿</h4>
- <p>ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊø֮ǰ²»·âËø¡£Õâ¾Í»áµ¼ÖÂزÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£</p>
- <h4><br>
- <a name="4.16"></a>4.16) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID£¿</h4>
- <p>OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID ¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ OID ¶¼´óÓÚ»òµÈÓÚÕâ¸öÖµ¡£È±Ê¡Ê±£¬ËùÓÐÕâЩ OID ²»½öÔÚÒ»¸ö±í»òÒ»¸öÊý¾Ý¿âÀïÃæΨһ£¬¶øÇÒÔÚÕû¸ö PostgreSQL °²×°ÀïÒ²ÊÇΨһµÄ¡£ <br>
- <br>
- PostgreSQL ÔÚËüµÄÄÚ²¿ÏµÍ³±íÀïʹÓà OID ÔÚ±íÖ®¼ä½¨Á¢ÁªÏµ¡£ÕâЩ OID ¿ÉÒÔÓÃÓÚ±êʶÌض¨µÄÓû§ÐÐÒÔ¼°ÓÃÔÚÁ¬½ÓÀï¡£½¨ÒéʹÓÃ×Ö¶ÎÀàÐÍ OID ´æ´¢ OID Öµ¡£¿ÉÒÔÔÚ OID ×Ö¶ÎÉÏ´´½¨Ò»¸öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ <br>
- <br>
- OID ´ÓÒ»¸ö±»ËùÓÐÊý¾Ý¿âʹÓõÄÖÐÐÄÇøÓòÀ︳ֵ¸øËùÓÐÐÂÐС£Èç¹ûÄãÏë°Ñ OID ¸Ä³É±ðµÄÖµ£¬»òÕßÏë×öÒ»·Ý±íµÄ´øÔʼ OID µÄ¿½±´£¬Äã¿ÉÒÔ×öµ½£º <br>
- <br>
- CREATE TABLE new(old_oid oid, mycol int);<br>
- SELECT old_oid, mycol INTO new FROM old;<br>
- COPY new TO '/tmp/pgtable';<br>
- DELETE FROM new;<br>
- COPY new WITH OIDS FROM '/tmp/pgtable';<br>
- <br>
- OID ÓÃ4×Ö½ÚµÄÕûÊý±£´æ£¬ÔÚ³¬¹ý40ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òËãÔÚÓÐÈ˱¨¸æ֮ǰÏû³ýÕâ¸öÏÞÖÆ¡£<br>
- <br>
- TID ÓÃÓÚ±êʶ´ø×ÅÊý¾Ý¿é£¨µØÖ·£©ºÍ£¨¿éÄÚ£©Æ«ÒƵÄÌض¨µÄÎïÀíÐС£TID ÔÚÐб»¸ü¸Ä»òÖØÔغó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£</p>
- <h4><a name="4.17"></a>4.17) PostgreSQL ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿</h4>
- <p>һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿·Ö£º <br>
- table, relation, class <br>
- row, record, tuple <br>
- column, field, attribute <br>
- retrieve, select <br>
- replace, update <br>
- append, insert <br>
- OID, serial value <br>
- portal, cursor <br>
- range variable, table name, table alias <br>
- <br>
- ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£º<a href="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</a>
- ¡£ </p>
- <h4><a name="4.18"></a>4.18)
- ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory exhausted in AllocSetAlloc()</i>¡±£¿</h4>
- <p>ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ postmaster ֮ǰÊÔÊÔÏÂÃæµÄÃüÁ <br>
- <br>
- ulimit -d 262144<br>
- limit datasize 256m<br>
- <br>
- È¡¾öÓÚÄãÓÃµÄ shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£</p>
- <h4><a name="4.19"></a>4.19)
- ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL µÄ°æ±¾£¿</h4>
- <p>´Ó psql À¼üÈë SELECT version()£»<br>
- </p>
- <h4><a name="4.20"></a>4.20)
- ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<I>invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</I>£¿</h4>
- <p>ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄÇ°ºó·ÅÉÏ BEGIN WORK ºÍ COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ <br>
- <br>
- Ä¿Ç° PostgreSQL Ç¿ÖÆʵʩÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö invalid large obj descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔÇ°Äܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£ <br>
- <br>
- Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£</p>
- <h4><a name="4.21"></a>4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿</h4>
- <p>ʹÓà CURRENT_TIMESTAMP£º<br>
- <br>
- CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);</p>
- <h4><a name="4.22"></a>4.22) ΪʲôʹÓà IN µÄ×Ó²éѯÕâôÂý£¿</h4>
- <p>Ä¿Ç°£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£º <br>
- <br>
- SELECT *<br>
- FROM tab<br>
- WHERE col IN (SELECT subcol FROM subtab);<br>
- <br>
- ¸ÄΪ£º <br>
- <br>
- SELECT *<br>
- FROM tab<br>
- WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);<br>
- <br>
- ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£</p>
- <h4><a name="4.23"></a>4.23) ÎÒÔõÑù½øÐÐ outer join £¨ÍâÁ¬½Ó£©£¿</h4>
- <p>PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º<br>
- <br>
- SELECT *<br>
- FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);<br>
- <br>
- »ò <br>
- SELECT *<br>
- FROM t1 LEFT OUTER JOIN t2 USING (col);<br>
- <br>
- ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1 ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER JOIN£©¡£<br>
- <br>
- ÔÚ´ËÇ°µÄ°æ±¾ÖУ¬ÍâÁ¬½Ó¿ÉÒÔÓà UNION ºÍ NOT IN À´Ä£Äâ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÔÚ±í tab1 ºÍ tab2 Ö®¼ä×öÍâÁ¬½Ó£º<br>
- <br>
- SELECT tab1.col1, tab2.col2<br>
- FROM tab1, tab2<br>
- WHERE tab1.col1 = tab2.col1<br>
- <br>
- UNION ALL<br>
- <br>
- SELECT tab1.col1, NULL<br>
- FROM tab1<br>
- WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)<br>
- ORDER BY col1</p>
- <h4><a name="4.24"></a>4.24)
- ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿</h4>
- <p>ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL ¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£<br>
- <br>
- contrib/dblink ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£</p>
- <h4><a name="4.25"></a>4.25)
- ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿</h4>
- <p>¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓà refcursors ·µ»Ø½á¹û¼¯¡£²Î¿´
- <a href="http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html"> http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>, 23.7.3.3½Ú¡£<br>
- </p>
- <h4><a name="4.26"></a>4.26) ΪʲôÔÚ
- PL/PgSQL º¯ÊýÖв»ÄÜ¿É¿¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿</h4>
- <p>PL/PgSQL
- »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö PL/PgSQL
- º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ
- PL/PgSQL ÖÐÓÃ EXECUTE
- ¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐÇ°×ÜÊÇÖØзÖÎö¡£</p>
- <h4><a name="4.27"></a>4.27)
- ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï</h4>
- <p>Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³
- <a href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</a>
- µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ <a href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</a>
- ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£</p>
- <h4><a name="4.28"></a>4.28)
- ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
- </h4>
- <p>contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL
- ²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃÜ¿Í»§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ pg_hba.conf
- ÖвÉÓà hostss ¡£ <br>
- <br>
- 7.3
- °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔÇ°µÄ°æ±¾ÖУ¬±ØÐëÔÚ
- postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION
- Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£<br>
- <br>
- --------------------------------------------------------------------------------</p>
- <h2 align="center">À©Õ¹ PostgreSQL</h2>
- <h4><a name="5.1"></a>5.1)
- ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿</h4>
- <p>²úÉúÕâ¸öÎÊÌâµÄÔÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£</p>
- <h4><a name="5.2"></a>5.2) ÎÒÈçºÎÄܸø
- PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿</h4>
- <p>½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers
- ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½ contrib/ ×ÓĿ¼¡£<br>
- </p>
- <h4><a name="5.3"></a>5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿</h4>
- <p>ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL
- ÍêÈ«Ö§³Ö·µ»ØֵΪ±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼
- ³ÌÐòÔ±Ö¸ÄÏ£¨the Programmer's Guide£©¡£ÔÚ contrib/tablefunc
- ÖÐÓÐÒ»¸öÀý×ÓÊÇÓà C дµÄ·µ»ØֵΪ±íµÄº¯Êý¡£</p>
- <h4><a name="5.4"></a>5.4)
- ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØбàÒëºóûÓп´µ½¸Ä±ä£¿</h4>
- <p> Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake
- clean£¬ ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC
- £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend
- ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹Øϵ¡£</p>
- </BODY>
-</HTML>
+</pre>
+<p>
+Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£</p>
+<p>¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣</p>
+<h4><a name="4.7"></a>4.7)
+ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿</h4>
+<i> psql</i> ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \?
+¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l
+¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
+<p>Ò²¿ÉÒÔÊÔÊÔÎļþ
+<i>pgsql/src/tutorial/syscat.source</i>¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ
+<font size="-1">SELECT</font>¡£</p>
+<h4><a name="4.8"></a>4.8)
+ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿</h4>
+<p>
+²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL
+±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓà VACUUM ANALYZE£¬»ò
+ANALYZE
+»ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£</p>
+<p>Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY
+»òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£</p>
+<p>µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY
+½áºÏʹÓÃʱ¾³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ»
+MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô ORDER BY ºÍ LLIMIT
+ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº<br />
+<br />
+ SELECT col<br />
+ FROM tab<br />
+ ORDER BY col [ DESC ]<br />
+ LIMIT 1;</p>
+<p>µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~
+ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌض¨µÄÇé¿öÏÂʹÓ㺠</p>
+<ul>
+<li>×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º</li>
+<li>LIKE ģʽ²»ÄÜÒÔ % ´òÍ·¡£</li>
+<li>~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£</li>
+<li>×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£</li>
+<li>´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà 4.12
+½ÚÃèÊöµÄº¯ÊýË÷Òý¡£</li>
+<li>ÔÚ×ö initdb ʱ±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖà C locale¡£</li>
+</ul>
+<h4><a name="4.9"></a>4.9)
+ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿</h4>
+²Î¿¼ <font size="-1">EXPLAIN</font> ÊÖ²áÒ³¡£
+<h4><a name="4.10"></a>4.10) R-tree Ë÷ÒýÊÇʲô£¿</h4>
+<p>R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø
+B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree
+Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point
+µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ
+¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£<br />
+<br />
+ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º<br />
+<br />
+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.<br />
+<br />
+Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database
+Systems¡±ÀïÕÒµ½ÕâƪÎÄÕ¡£<br />
+<br />
+ϵͳÄÚÖÃµÄ R-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree
+¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees
+ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£</p>
+<h4><a name="4.11"></a>4.11) ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query
+Optimization£©£¿</h4>
+<p>GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic
+Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£</p>
+<h4><a name="4.12"></a>4.12)
+ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿</h4>
+<p>²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~*
+´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎÞ¹ØµÄ LIKE ±äÖÖ³ÉΪ
+ILIKE¡£<br />
+<br />
+´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º<br />
+<br />
+ SELECT *<br />
+ FROM tab<br />
+ WHERE lower(col) = 'abc';<br />
+<br />
+ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:<br />
+<br />
+ CREATE INDEX tabindex ON tab (lower(col));</p>
+<h4><a name="4.13"></a>4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ
+NULL£¿</h4>
+<p>Óà IS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ <br /></p>
+<h4><a name="4.14"></a>4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿</h4>
+<p> ÀàÐÍ ÄÚ²¿Ãû³Æ ˵Ã÷<br />
+ --------------------------------------------------<br />
+ "char" char 1¸ö×Ö·û character<br />
+ CHAR(#) bpchar
+¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë<br />
+ VARCHAR(#) varchar
+Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë<br />
+ TEXT text ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ<br />
+ BYTEA bytea ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©<br />
+<br />
+ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ <br />
+<br />
+ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓÃ
+TOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅÌ¿Õ¼äÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£<br />
+<br />
+CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n)
+ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT
+ÊÊÓÃÓÚ´æ´¢²»ÏÞÖƳ¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA
+ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊÇ°üº¬ NULL
+×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£</p>
+<h4><a name="4.15.1"></a>4.15.1)
+ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿</h4>
+<p>PostgreSQL Ö§³Ö SERIAL
+Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬<br />
+ CREATE TABLE person ( <br />
+ id SERIAL, <br />
+ name TEXT <br />
+ );<br />
+<br />
+»á×Ô¶¯×ª»»Îª£º <br />
+ <br />
+ CREATE SEQUENCE person_id_seq;<br />
+ CREATE TABLE person ( <br />
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),<br />
+ name TEXT <br />
+ );<br />
+ CREATE UNIQUE INDEX person_id_key ON person ( id );<br />
+<br />
+²Î¿¼ create_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐеÄ
+oid
+×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓÃ
+pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ </p>
+<h4><a name="4.15.2"></a>4.15.2)
+ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿</h4>
+<p>Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö
+SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà <a href="#4.15.1">4.15.1</a>
+ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º <br />
+<br />
+ new_id = execute("SELECT nextval('person_id_seq')");<br />
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
+Pascal')");<br />
+<br />
+ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person
+±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ
+<table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn
+·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ <br />
+<br />
+ÀàËƵģ¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ
+SERIAL Öµ£¬ÀýÈ磬 <br />
+<br />
+ execute("INSERT INTO person (name) VALUES ('Blaise
+Pascal')");<br />
+ new_id = execute("SELECT currval('person_id_seq')");<br />
+<br />
+×îºó£¬Äã¿ÉÒÔʹÓÃ´Ó INSERT Óï¾ä·µ»ØµÄ <a href="4.16">OID</a>
+²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ
+Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý
+$sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ </p>
+<h4><a name="4.15.3"></a>4.15.3) ʹÓà currval() ºÍ nextval()
+»áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿</h4>
+<p>²»»á¡£currval()
+·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£<br /></p>
+<h4><a name="4.15.4"></a>4.15.4)
+Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄÈ¡ÖµÖдæÔÚ¼ä¶ÏÄØ£¿</h4>
+<p>
+ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊø֮ǰ²»·âËø¡£Õâ¾Í»áµ¼ÖÂزÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£</p>
+<h4><br />
+<a name="4.16"></a>4.16) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID£¿</h4>
+<p>OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL
+Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID
+¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ OID
+¶¼´óÓÚ»òµÈÓÚÕâ¸öÖµ¡£È±Ê¡Ê±£¬ËùÓÐÕâЩ OID
+²»½öÔÚÒ»¸ö±í»òÒ»¸öÊý¾Ý¿âÀïÃæΨһ£¬¶øÇÒÔÚÕû¸ö PostgreSQL
+°²×°ÀïÒ²ÊÇΨһµÄ¡£ <br />
+<br />
+PostgreSQL ÔÚËüµÄÄÚ²¿ÏµÍ³±íÀïʹÓà OID ÔÚ±íÖ®¼ä½¨Á¢ÁªÏµ¡£ÕâЩ OID
+¿ÉÒÔÓÃÓÚ±êʶÌض¨µÄÓû§ÐÐÒÔ¼°ÓÃÔÚÁ¬½ÓÀï¡£½¨ÒéʹÓÃ×Ö¶ÎÀàÐÍ OID ´æ´¢
+OID Öµ¡£¿ÉÒÔÔÚ OID ×Ö¶ÎÉÏ´´½¨Ò»¸öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ <br />
+<br />
+OID ´ÓÒ»¸ö±»ËùÓÐÊý¾Ý¿âʹÓõÄÖÐÐÄÇøÓòÀ︳ֵ¸øËùÓÐÐÂÐС£Èç¹ûÄãÏë°Ñ
+OID ¸Ä³É±ðµÄÖµ£¬»òÕßÏë×öÒ»·Ý±íµÄ´øÔʼ OID µÄ¿½±´£¬Äã¿ÉÒÔ×öµ½£º
+<br />
+<br />
+ CREATE TABLE new(old_oid oid, mycol int);<br />
+ SELECT old_oid, mycol INTO new FROM old;<br />
+ COPY new TO '/tmp/pgtable';<br />
+ DELETE FROM new;<br />
+ COPY new WITH OIDS FROM '/tmp/pgtable';<br />
+<br />
+OID
+ÓÃ4×Ö½ÚµÄÕûÊý±£´æ£¬ÔÚ³¬¹ý40ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òËãÔÚÓÐÈ˱¨¸æ֮ǰÏû³ýÕâ¸öÏÞÖÆ¡£<br />
+
+<br />
+TID ÓÃÓÚ±êʶ´ø×ÅÊý¾Ý¿é£¨µØÖ·£©ºÍ£¨¿éÄÚ£©Æ«ÒƵÄÌض¨µÄÎïÀíÐС£TID
+ÔÚÐб»¸ü¸Ä»òÖØÔغó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£</p>
+<h4><a name="4.17"></a>4.17) PostgreSQL
+ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿</h4>
+<p>
+һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿·Ö£º
+<br />
+ table, relation, class <br />
+ row, record, tuple <br />
+ column, field, attribute <br />
+ retrieve, select <br />
+ replace, update <br />
+ append, insert <br />
+ OID, serial value <br />
+ portal, cursor <br />
+ range variable, table name, table alias <br />
+<br />
+ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£º<a href=
+"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</a>
+¡£ </p>
+<h4><a name="4.18"></a>4.18) ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory
+exhausted in AllocSetAlloc()</i>¡±£¿</h4>
+<p>
+ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯
+postmaster ֮ǰÊÔÊÔÏÂÃæµÄÃüÁ <br />
+<br />
+ ulimit -d 262144<br />
+ limit datasize 256m<br />
+<br />
+È¡¾öÓÚÄãÓõÄ
+shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£</p>
+<h4><a name="4.19"></a>4.19) ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL
+µÄ°æ±¾£¿</h4>
+<p>´Ó psql À¼üÈë SELECT version()£»<br /></p>
+<h4><a name="4.20"></a>4.20)
+ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<i>invalid large obj
+descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</i>£¿</h4>
+<p>ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄÇ°ºó·ÅÉÏ BEGIN WORK ºÍ
+COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ <br />
+<br />
+Ŀǰ PostgreSQL
+Ç¿ÖÆʵʩÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö
+invalid large obj
+descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔÇ°Äܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£
+<br />
+<br />
+Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£</p>
+<h4><a name="4.21"></a>4.21)
+ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿</h4>
+<p>ʹÓà CURRENT_TIMESTAMP£º<br />
+<br />
+ CREATE TABLE test(x int, modtime timestamp DEFAULT
+CURRENT_TIMESTAMP);</p>
+<h4><a name="4.22"></a>4.22) ΪʲôʹÓà IN µÄ×Ó²éѯÕâôÂý£¿</h4>
+<p>
+Ä¿Ç°£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN
+Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£º
+<br />
+<br />
+ SELECT *<br />
+ FROM tab<br />
+ WHERE col IN (SELECT subcol FROM subtab);<br />
+<br />
+¸ÄΪ£º <br />
+<br />
+ SELECT *<br />
+ FROM tab<br />
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol =
+col);<br />
+<br />
+ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol
+Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£</p>
+<h4><a name="4.23"></a>4.23) ÎÒÔõÑù½øÐÐ outer join
+£¨ÍâÁ¬½Ó£©£¿</h4>
+<p>PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º<br />
+<br />
+ SELECT *<br />
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);<br />
+<br />
+»ò <br />
+ SELECT *<br />
+ FROM t1 LEFT OUTER JOIN t2 USING (col);<br />
+<br />
+ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1
+ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT
+OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER
+JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER
+ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER
+JOIN£©¡£<br />
+<br />
+ÔÚ´ËÇ°µÄ°æ±¾ÖУ¬ÍâÁ¬½Ó¿ÉÒÔÓà UNION ºÍ NOT IN
+À´Ä£Äâ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÔÚ±í tab1 ºÍ tab2 Ö®¼ä×öÍâÁ¬½Ó£º<br />
+<br />
+ SELECT tab1.col1, tab2.col2<br />
+ FROM tab1, tab2<br />
+ WHERE tab1.col1 = tab2.col1<br />
+<br />
+ UNION ALL<br />
+<br />
+ SELECT tab1.col1, NULL<br />
+ FROM tab1<br />
+ WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)<br />
+ ORDER BY col1</p>
+<h4><a name="4.24"></a>4.24) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿</h4>
+<p>ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL
+¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£<br />
+
+<br />
+contrib/dblink
+ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£</p>
+<h4><a name="4.25"></a>4.25) ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿</h4>
+<p>¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓà refcursors ·µ»Ø½á¹û¼¯¡£²Î¿´ <a href=
+"http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html">http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>,
+23.7.3.3½Ú¡£<br /></p>
+<h4><a name="4.26"></a>4.26) ΪʲôÔÚ PL/PgSQL
+º¯ÊýÖв»ÄÜ¿É¿¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿</h4>
+<p>PL/PgSQL »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö
+PL/PgSQL
+º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ
+PL/PgSQL ÖÐÓÃ EXECUTE
+¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐÇ°×ÜÊÇÖØзÖÎö¡£</p>
+<h4><a name="4.27"></a>4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï</h4>
+<p>
+Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³
+<a href=
+"http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</a>
+ µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ <a href=
+"http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php">
+http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</a>
+ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£</p>
+<h4><a name="4.28"></a>4.28) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï</h4>
+<p>contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL
+²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃÜ¿Í»§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ
+pg_hba.conf ÖвÉÓà hostss ¡£ <br />
+<br />
+7.3 °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔÇ°µÄ°æ±¾ÖУ¬±ØÐëÔÚ
+postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION
+Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£<br />
+<br />
+--------------------------------------------------------------------------------</p>
+<h2 align="center">À©Õ¹ PostgreSQL</h2>
+<h4><a name="5.1"></a>5.1) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql
+ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿</h4>
+<p>
+²úÉúÕâ¸öÎÊÌâµÄÔÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£</p>
+<h4><a name="5.2"></a>5.2) ÎÒÈçºÎÄܸø PostgreSQL
+¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿</h4>
+<p>½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½
+contrib/ ×ÓĿ¼¡£<br /></p>
+<h4><a name="5.3"></a>5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿</h4>
+<p>ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL
+ÍêÈ«Ö§³Ö·µ»ØֵΪ±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼ ³ÌÐòÔ±Ö¸ÄÏ£¨the
+Programmer's Guide£©¡£ÔÚ contrib/tablefunc ÖÐÓÐÒ»¸öÀý×ÓÊÇÓà C
+дµÄ·µ»ØֵΪ±íµÄº¯Êý¡£</p>
+<h4><a name="5.4"></a>5.4)
+ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØбàÒëºóûÓп´µ½¸Ä±ä£¿</h4>
+<p>Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake clean£¬
+ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend
+ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹Øϵ¡£</p>
+</body>
+</html>