PostgreSQL¤ÎºÇ¶á¤Î¥Ö¥í¥°µ­»ö

select * from ¥Æ¡¼¥Ö¥ë̾ where ¥«¥é¥à̾1 = '0' and ¥«¥é¥à̾2 = 1
PostgreSQL 8.3¤è¤êÁ°¤Ç¤ÏÌäÂê¤Ê¤«¤Ã¤¿¤È»×¤¦¤Î¤À¤¬¡¢8.3¤À¤È¤³¤ÎSQL¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£

SQL¼Â¹ÔÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
ERROR: operator does not exist: character varying = integer at character 69

¸¶°ø¤Ï¡¢¡Ö¥«¥é¥à̾2¡×¤Î·¿¤¬¡Öbpchar¡×¤È¤¤¤¦¤â¤Î¤À¤Ã¤¿¤Î¤Ë¡Ö'¡×¤Ç¿ôÃͤò°Ï¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤«¤é¤À¤Ã¤¿¡£
¡¦¡¦¡¦ÊÙ¶¯ÉÔ­¤À¤¬¡¢bpchar·¿¤Ã¤Æ½é¤á¤Æ¸«¤¿¡£

select * from ¥Æ¡¼¥Ö¥ë̾ where ¥«¥é¥à̾1 = '0' and ¥«¥é¥à̾2 = 1
¢­
select * from ¥Æ¡¼¥Ö¥ë̾ where ¥«¥é¥à̾1 = '0' and ¥«¥é¥à̾2 = '1'
¤È¤¤¤¦¤è¤¦¤Ë¡Ö'¡Ê¥¢¥Ý¥¹¥È¥í¥Õ¥£¡¼¡Ë¡×¤Ç¿ô»ú¤ÎÉôʬ¤ò°Ï¤Ã¤Æ¤ä¤ì¤Ð¥¨¥é¡¼¤Ï²ò¾Ã¤¹¤ë¡£
PostgreSQL8.3¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤À¤È¡¢bpchar·¿¤È¤¤¤¦Ê¸»ú·¿¤Ã¤Ý¤¤·¿¤Ê¤Î¤Ë¡Ö'¡Ê¥¢¥Ý¥¹¥È¥í¥Õ¥£¡¼¡Ë¡×¤òÉÕ¤±Ëº¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â½ÀÆð¤Ëưºî¤·¤Æ¤¯¤ì¤Æ¤¤¤¿¤Î¤À¤¬¡¢8.3¤«¤é¤Ï¸·¤·¤¯¤Ê¤Ã¤Æ¤ë¤è¤¦¤À¡£
¤³¤Î8.2¤È8.3¤Ç¤³¤¦¤¤¤Ã¤¿ºÙ¤«¤Ê»ÅÍͤ¬°Û¤Ê¤Ã¤Æ¤¤¤Æ¡¢¤Á¤ç¤Ã¤ÈÌÌÅÝ¡¦¡¦¡¦¡£

PostgreSQL¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ÈÍѤ·¤¿¾ì¹ç¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷¤òɽ¼¨¤¹¤ëÊýË¡¤ò°Ê²¼¤Ë¥á¥â¤È¤·¤Æµ­ºÜ¤¹¤ë¡£

psql -U postgres¤Ç¥í¥°¥¤¥ó
\l
¢¨Windows¤Î¾ì¹ç¤Ï¡Ö¡ïl¡×¤È¤Ê¤ë¡£¡Ö¡ï¡×¤ÏȾ³Ñ¡£
¢¨Linux¤Î¾ì¹ç¤Ï¡Ö¡ï¡×¤Ï¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤Çɽ¼¨¤µ¤ì¤ë¡£
postgres=# \l
¢¨¡Öl¡×¤Ï¡¢È¾³Ñ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Îl¡Ê¥¨¥ë¡Ë¡£

             List of databases
         Name         |  Owner   | Encoding
----------------------+----------+----------
 neko1_db             | postgres | EUC_JP
 neko2_db             | postgres | EUC_JP
 neko3_db             | postgres | EUC_JP
 postgres             | postgres | EUC_JP
 template0            | postgres | EUC_JP
 template1            | postgres | EUC_JP
(6 rows)

¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷¤Î¾¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½êÍ­¼Ô¡ÊOwner¡Ë¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¡ÊEncoding¡Ë¤â³Îǧ¤Ç¤­¤ë¡£

¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇPostgreSQL¤Ë¥í¥°¥¤¥ó¤¹¤ëÊýË¡¤ò°Ê²¼¤Ë¥á¥â¤È¤·¤Æµ­ºÜ¤¹¤ë¡£

¢£Windows¤Î¾ì¹ç
(1)¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È¤òµ¯Æ°¤·¤Æ°Ê²¼¤òÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¡£
cd C:\Program Files\PostgreSQL\8.3\bin
¤Þ¤¿¤Ï
[¥¹¥¿¡¼¥È]¢ª[¤¹¤Ù¤Æ¤Î¥×¥í¥°¥é¥à]¢ª[PostgreSQL 8.3]¢ª[¥³¥Þ¥ó¥É¡¦¥×¥í¥ó¥×¥È]¤Ç¤âOK

(2)C:\Program Files\PostgreSQL\8.3\bin>¤Î¸å¤í¤Ë³¤±¤Æ°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¡£
psql -U postgres

¢¨È÷¹Í
¡Öpsql -U postgres ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡×¤È¤·¤Æ¡¢»ÈÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¥í¥°¥¤¥ó¤¹¤ë¤ÈÊØÍø¡£
¡ãÎã¡ä
C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres catdb
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

catdb=#

¢£Linux¤Î¾ì¹ç
(1)Linux¤Ë¥í¥°¥¤¥ó¸å¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¡£
psql -U postgres

¢¨È÷¹Í
¡Öpsql -U postgres ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡×¤È¤·¤Æ¡¢»ÈÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÁªÂò¤·¤Æ¥í¥°¥¤¥ó¤¹¤ë¤ÈÊØÍø¡£
¡ãÎã¡ä
[root@nekoneko ~]# psql -U postgres catdb
Welcome to psql 8.1.11, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

catdb=#

psql¤ÇÀܳ¤¹¤ë¤¢¤¿¤ê¤«¤é¡¢Windows¡¢Linux¤É¤Á¤é¤ÇPostgreSQL¤Ë¥í¥°¥¤¥ó¤·¤¿¾ì¹ç¤Ç¤â´ðËÜÁàºî¤ÏƱ¤¸¡¦¡¦¡¦¤À¤È»×¤¦¡£

PostgreSQL¤Ç¡¢¤¢¤ëÍѸì¤ò´Þ¤à¤«¤É¤¦¤«¤ò¸¡º÷¾ò·ï¤Ë¤¹¤ëÊýË¡¤ò°Ê²¼¤Ë¥á¥â¤È¤·¤Æµ­ºÜ¤¹¤ë¡£

select ¥«¥é¥à̾ where ¸¡º÷ÂоݤΥ«¥é¥à̾ like '%¸¡º÷¤·¤¿¤¤ÍѸì%';

¡ÔÎã¡Õ
select nobuneko_title from nobuneko_table where nobuneko_title like '%»³¸ý»Ô%';
¡Önobuneko_title¡×¤È¤¤¤¦¥«¥é¥à¤Ë¡Ö»³¸ý»Ô¡×¤ÎÍѸì¤ò´Þ¤à¤«¤É¤¦¤«¤ò¸¡º÷¾ò·ï
¤È¤¹¤ë¡£

£Ì£é£î£õ£ø¤Î¥³¥ó¥½¡¼¥ë²èÌÌÅù¤Çpsql -U postgres¤È¤¹¤ë¤È¡¢

psql: FATAL:  Ident authentication failed for user "postgres"

¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£

¤³¤Î¥¨¥é¡¼¤Ï¡¢pg_hba.conf¤ò½¤Àµ¤¹¤ì¤Ð²óÈò¤Ç¤­¤ë¡£

-----------------------------------------------------------------------------------------------------
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser
-----------------------------------------------------------------------------------------------------

PostgreSQL 8.x¤Î¥¤¥ó¥¹¥È¡¼¥ëľ¸å¤À¤È¾åµ­¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öident sameuser¡×¤ò¡Ötrust¡×¤ËÊѹ¹¤¹¤ë¡£

-----------------------------------------------------------------------------------------------------
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
-----------------------------------------------------------------------------------------------------

PostgreSQL¥µ¡¼¥Ó¥¹¤òºÆµ¯Æ°¤·¤¿¤é¡¢psql -U postgres¤¬ÍøÍѤǤ­¤ë¤Ï¤º¡£

¢¨pg_hba.conf¤Ï¡¢Linux¤À¤È/var/lib/pgsql/data/ÇÛ²¼¡¢Windows¤À¤È¡¢C:\Program Files\PostgreSQL\8.x\dataÇÛ²¼¤Ë¤¢¤ë¡£¡Ê¡Ö8.x¡×¤Ï£Ð£ï£ó£ô£ç£ò£å£Ó£Ñ£Ì¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¼ÂºÝ¤Ë¤Ï¡Ö8.3¡×¤Ê¤É¤È¤Ê¤ë¡£¡Ë

¥³¥ó¥½¡¼¥ë²èÌ̤Çpsql -U postgres¤¬ÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤â¡¢PHP¤ÇDBÀܳ¤Ç¤­¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£
¤½¤Î»þ¤Ë¡¢PostgreSQL¤Î¥í¥°¤ò¸«¤Æ¤ß¤ë¤È¡ÊLinux¤Ê¤é/var/lib/pgsql/data/pg_log¤Ê¤É¥í¥°¤¬¤¢¤ë¡Ë¡¢°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤ë¡£

LOG:  could not connect to Ident server at address "127.0.0.1", port 113: Àܳ¤òµñÈݤµ¤ì¤Þ¤·¤¿
FATAL:  Ident authentication failed for user "postgres"

¤³¤Î¾ì¹ç¡¢pg_hba.conf¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤ÈÀܳ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

/var/lib/pgsql/data/pg_hba.conf
-----------------------------------------------------------------------------------------------------
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident sameuser
-----------------------------------------------------------------------------------------------------

PostgreSQL 8.x¤Î¥¤¥ó¥¹¥È¡¼¥ëľ¸å¤À¤È¾åµ­¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¡Öident sameuser¡×¤ò¡Ötrust¡×¤ËÊѹ¹¤¹¤ë¡£

-----------------------------------------------------------------------------------------------------
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
-----------------------------------------------------------------------------------------------------

PostgreSQL¥µ¡¼¥Ó¥¹¤òºÆµ¯Æ°¤·¤¿¤é¡¢PHP¤«¤éPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤Ï¤º¡£

Î㤨¤Ð¡¢PostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¥À¥ó¥×¤¹¤ë¤¿¤á¤ËLinux¤Î¥³¥ó¥½¡¼¥ë²èÌ̤ʤɤÇpg_dump¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤¿ºÝ¤Ë¡Ötimestamp out of range¡×¤È¡ÖFETCH 100 FROM _pg_dump_cursor¡×¤È¤¤¤Ã¤¿¥¨¥é¡¼¤¬½Ð¤Æ¥À¥ó¥×¤Ë¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£

¡ãÎã¡ä
pg_dump -U postgres -D nobuneko_db > 20100421.nobuneko_db.dmp
pg_dump: SQL¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿
pg_dump: ¥µ¡¼¥Ð¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸: ERROR:  timestamp out of range
pg_dump: ¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤·¤¿: FETCH 100 FROM _pg_dump_cursor
pg_dump -U postgres --table=neko_table1 -b nobuneko_db > nobuneko_db.neko_table1.dmp
pg_dump: ERROR:  timestamp out of range
pg_dump: ¥Æ¡¼¥Ö¥ë"neko_table1"¤ÎÆâÍÆ¤ò¥À¥ó¥×¤¹¤ëSQL¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿: PQendcopy()¤¬¼ºÇÔ¤·¤Þ¤·¤¿¡£
pg_dump: ¥µ¡¼¥Ð¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸: ERROR:  timestamp out of range
pg_dump: ¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤·¤¿: COPY public.neko_table1 (neko_id, neko_time, neko_title,neko_body) TO stdout;

¾åµ­¤ÎÎã¤Ç¤Ï¡¢¡Ötimestamp out of range¡×¤È¤¤¤¦¥¨¥é¡¼¤è¤ê¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¡Önobuneko_db¡×¤Î¥Æ¡¼¥Ö¥ë¡Öneko_table1¡×¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¡Ê¾åµ­Îã¤Ç¤Ï¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¤Ï¡Öneko_time¡×¤Î¤ß¤È¤¹¤ë¡Ë¤Ç°Û¾ï¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¤È¿ä¬¤Ç¤­¤ë¡£
¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢psql¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤Æ°Û¾ï¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¥ì¥³¡¼¥É¤òÆÃÄꤷ¤ÆÂбþÊýË¡¤ò¹Í¤¨¤ë¡£°Ê²¼¤ËÂбþÎã¤òµ­ºÜ¤¹¤ë¡£

(1)¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ
psql -U postgres nobuneko_db
PostgreSQL ¤Î²ñÏ÷¿¥¿¡¼¥ß¥Ê¥ë¡¢psql 8.1.10 ¤Ø¤è¤¦¤³¤½

\copyright ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢ÇÛÉÛ¾ò·ï¤òɽ¼¨¤·¤Þ¤¹¡£
\h ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢SQL ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\? ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢psql ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\g ¤ÈÂǤĤ«¥»¥ß¥³¥í¥ó¤ÇÊĤ¸¤ë¤È¡¢¥¯¥¨¥ê¡¼¤ò¼Â¹Ô¤·¤Þ¤¹¡£
\q ¤Ç½ªÎ»¤·¤Þ¤¹¡£

(2)¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë̵»ö¤ËÀܳ¤Ç¤­¤¿¤é¡¢¸¡º÷¤¬¤Ç¤­¤ë¤«Å¬Åö¤Ë»î¤·¤Æ¤ß¤ë¡£
nobuneko_db=# select max(neko_id) from neko_table1;
 max 
------
 2011
(1 ¹Ô)

¾åµ­Îã¤Ç¤Ï¡¢Á´¥ì¥³¡¼¥É¤Ë¤ª¤¤¤Æ¥«¥é¥à¡Öneko_id¡×¤Ç¤Ï¤ª¤½¤é¤¯°Û¾ï¤¬¤Ê¤¤¤Èʬ¤«¤ë¡£

(3)¸¡º÷¾ò·ï¤òÊѤ¨¤Ê¤¬¤é°Û¾ï¥ì¥³¡¼¥É¡¢°Û¾ï¥«¥é¥à¤òÆÃÄꤹ¤ë¡£
nobuneko_db=# select * from neko_table1 order by neko_id desc limit 100;
ERROR:  timestamp out of range
nobuneko_db=# select * from neko_table1 order by neko_id desc limit 10;
ERROR:  timestamp out of range
nobuneko_db=# select * from neko_table1 where neko_id = 2004;
ERROR:  timestamp out of range
nobuneko_db=# select * from neko_table1 where neko_id != 2004;
¢ª¤³¤ÎºÇ¸å¤Î¸¡º÷¾ò·ï¤Ç¥¨¥é¡¼¤¬µ¯¤­¤ë¤³¤È¤Ê¤¯Àµ¾ï¤Ë¸¡º÷¤Ç¤­¤¿¤¿¤á¡¢neko_id¤¬2004¤Î¥ì¥³¡¼¥É¤Î¤ß¤Ç°Û¾ï¤¬¤¢¤ë¤ÈȽÌÀ¡£

¤µ¤é¤Ë¡ÊͽÁÛÄ̤ê¤È¤Ï¸À¤¨¡¢Ç°¤Î¤¿¤á¡Ëselect¤ÎÂоݤòneko_time¤À¤±¤Ë¤·¤Æ¸¡º÷¤·¡¢¥¨¥é¡¼¤¬µ¯¤­¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£
nobuneko_db=# select neko_time from neko_table1 where neko_id = 2004;
ERROR:  timestamp out of range

(4)°Û¾ï¥ì¥³¡¼¥É¡¢°Û¾ï¥«¥é¥à¤¬ÆÃÄê¤Ç¤­¤¿¾ì¹ç¡¢°Û¾ï¥«¥é¥à¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤·¤Æ¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¡£
update neko_table1 set neko_time = '2010/04/21' where neko_id = 2004;
¢¨'2010/04/21'¤ÎÉôʬ¤Ï¡Önow()¡×ÅùŬÀڤʥ¿¥¤¥à¥¹¥¿¥ó¥×·¿¤ÎÃͤò»ØÄꤹ¤ë¡£

(5)ÌäÂ꤬²ò¾Ã¤·¤¿¤³¤È¤ò³Îǧ¤¹¤ë¡£

(6)²¿¸Î°Û¾ï¤ÊÃͤ¬Æþ¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤«¤ò¸¡Æ¤¤·¡¢Âкö¤¹¤ë¡£
Web¤Î¥Õ¥©¡¼¥à¤ÇÃͤòÆþ¤ì¤ë¤è¤¦¤Ê»ÅÁȤߤ¬¤¢¤ë¾ì¹ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÃͤòÅϤ¹Á°¤Ë¥æ¡¼¥¶¤¬¼êÆþÎϤ·¤¿Ãͤ¬Å¬ÀÚ¤ÊÃͤǤ¢¤ë¤«¤ò¥×¥í¥°¥é¥à¤Ç¥Á¥§¥Ã¥¯¡ÊÆþÎÏÃÍ¥Á¥§¥Ã¥¯¡Ë¤·¤Æ¤¤¤ë¤È»×¤¦¤¬¡¢Æ±¥×¥í¥°¥é¥à¤Ë·ç´Ù¤¬¤¢¤ë¤È¡¢ÉÔŬÀÚ¤ÊÆþÎÏÃͤΤޤޥǡ¼¥¿¥Ù¡¼¥¹¤ËÃͤòÅϤ·¤Æ¤·¤Þ¤¤¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Â¦¤âÉÔŬÀÚ¤ÊÃͤΤޤ޼õ¤±Æþ¤ì¤Æ¤·¤Þ¤¤¡¢Æ±¥¨¥é¡¼¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¡¢ÆþÎÏÃÍ¥Á¥§¥Ã¥¯¥×¥í¥°¥é¥à¤òŬµ¹½¤Àµ¤·¤ÆÂбþ¤¹¤ë¤³¤È¤Ê¤É¤¬¹Í¤¨¤é¤ì¤ë¡£
PostgreSQL¦¤Ç¤â¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Ç¤¢¤ë¤Ù¤­¥«¥é¥à¤Ë¤½¤¦¤Ç¤Ê¤¤ÃͤòÆþ¤ì¤è¤¦¤È¤·¤¿»þ¤Ë¡Ö¤½¤ó¤ÊÃͤòÆþ¤ì¤ë¤Ê¡ª¡×¤ÈµñÈݤ·¤Æ¤¯¤ì¤¿¤é¤¤¤¤¤Î¤Ë¤Ê¤¢¡¢¤È»×¤¦¤±¤ì¤É¡¢¤½¤¦¤¤¤¨¤Ð¡¢¿ôÃÍ·¿¤Ëʸ»úÎ󷿤ÎÃͤòÆþ¤ì¤è¤¦¤È¤·¤¿¤é¥¨¥é¡¼¤òÊÖ¤·¤Æ¤¯¤ì¤ëµ¡Ç½¤Ï¤¢¤Ã¤¿¤È»×¤¦¤Î¤Ç¡¢PostgreSQL¦¤ÎÆþÎÏÃÍ¥Á¥§¥Ã¥¯¤âËüÁ´¤Ç¤Ï¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ê¤Î¤À¤í¤¦¡£¤È¤¤¤¦¤ï¤±¤Ç¡¢¤ä¤Ï¤ê¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÃͤòÅϤ¹Â¦¡ÊWeb¤À¤ÈPHP¥×¥í¥°¥é¥àÅù¡Ë¤Î¥Á¥§¥Ã¥¯¥×¥í¥°¥é¥à¤Ç¤³¤Î¼ï¤ÎÌäÂê¤ÏÂбþ¤ò³¤±¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤À¤í¤¦¤Ê¤¡¡¦¡¦¡¦¡£

¤½¤ì¤Ë¤·¤Æ¤â¡¢¤¿¤Ã¤¿1¤Ä¤Î¥«¥é¥à¤Ë°Û¾ïÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¤À¤±¤Ç¡¢¥À¥ó¥×¤Ë¼ºÇÔ¤¹¤ë¡Ê¡ÖFETCH 100 FROM _pg_dump_cursor¡×¤È¤¤¤¦¥¨¥é¡¼¤Ë¤Ê¤ë¡Ë»ÅÍͤϡ¢¤Á¤ç¤Ã¤ÈÉݤ¤¡£¥À¥ó¥×¤¬¼è¤ì¤Ê¤¤¤È¡¢¥À¥ó¥×¤Ç¤ÎÆü¼¡¥Ð¥Ã¥¯¥¢¥Ã¥×½èÍý¤ò¤·¤Æ¤¤¤ë¾ì¹ç¤Ê¤É¤Ïº¤¤ë¤Ê¤¡¡¦¡¦¡¦¡£

¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¤òlike¤Ç¥Ñ¥¿¡¼¥ó¸¡º÷¤¹¤ë»þ¤ËPostgreSQL 7.4¤È¤«8.1¤È¤«8.2¤Ç¤ÏŬÅö¤ÊSQLʸ¤Ë¤·¤Æ¤¤¤Æ¤âưºî¤·¤Æ¤¤¤¿¤Î¤À¤¬¡¢8.3¤À¤ÈSQLʸ¤ò¸·Ì©¤Ë¤·¤Ê¤¤¤Èưºî¤·¤Ê¤¯¤Ê¤Ã¤¿¡£
Î㤨¤Ð¡¢°Ê²¼¤Î¤è¤¦¤ÊSQL¤ò¼Â¹Ô¤·¤¿¤È¤¹¤ë¡£
select * from nobuneko_table where nobuneko_time like '%-%-%';
¢¨¤³¤ÎÎã¤Ç¤Ï¡¢¡Önobuneko_time¡×¤¬¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¤Ç¡¢¤³¤Î¥«¥é¥à¤Ë¤ÏÎ㤨¤Ð¡Ö2010-05-02¡×¤È¤¤¤Ã¤¿¤è¤¦¤ÊÃͤ¬Æþ¤ë¡£

8.3¤è¤ê¤âÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤À¤È¤³¤Î½ñ¤­Êý¤Ç¤â·ë²Ì¤¬Ê֤äƤ¤¤¿¤Î¤À¤¬¡¢8.3¤À¤È°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£
operator does not exist: timestamp without time zone ~~ unknown

like¤Ïʸ»úÎ󸡺÷¤Ê¤Î¤Ë¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¡Önobuneko_time¡×¤Ç¸¡º÷¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤¿¤á¡¢·¿¤ÎÉÔ°ìÃפǾ嵭¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¡£8.3¤è¤êÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤À¤ÈPostgreSQL¦¤¬¼«Æ°Åª¤Ë·¿¤òÊÑ´¹¡Ê¥­¥ã¥¹¥È¡Ë¤·¤Æ¤¯¤ì¤Æ¤¤¤¿¤Î¤À¤¬¡¢8.3¤Ç¤Ï¼«Æ°Åª¤Ë¥­¥ã¥¹¥È¤·¤Æ¤¯¤ì¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£½¾¤Ã¤Æ¡¢PostgreSQL 8.3¤Ç¤Ï¡¢¼«Ê¬¤ÇÌÀ¼¨Åª¤Ë¥­¥ã¥¹¥È¤¹¤ë¤è¤¦¤ÊSQLʸ¤ò½ñ¤¯É¬Íפ¬¤¢¤ë¡£

¤Þ¤È¤á¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£

¡ãPostgreSQL 7.4¤È¤«8.1¤È¤«8.2¡ä
select * from nobuneko_table where nobuneko_time like '%-%-%';
¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¡Önobuneko_time¡×¤¬¥Æ¥­¥¹¥È·¿¤Ë¼«Æ°Åª¤Ë¥­¥ã¥¹¥È¤µ¤ì¤ë¤¿¤á¡¢¤³¤ÎSQL¤Ç¤â·ë²Ì¤¬Ê֤롣

¡ãPostgreSQL 8.3¡ä
select * from nobuneko_table where nobuneko_time like '%-%-%';
¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¡Önobuneko_time¡×¤¬¥Æ¥­¥¹¥È·¿¤Ë¼«Æ°Åª¤Ë¥­¥ã¥¹¥È¤µ¤ì¤Ê¤¤¤¿¤á¡¢¤³¤ÎSQL¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤È¤Ê¤ë¡£
operator does not exist: timestamp without time zone ~~ unknown
¢¨8.3¤è¤ê¤âÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¤è¤¦¤Ë¼«Æ°Åª¤Ë¥­¥ã¥¹¥È¤µ¤ì¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢SQLʸ¤Î¥¿¥¤¥à¥¹¥¿¥ó¥×·¿¤Î¥«¥é¥à¤Îľ¸å¤Ë¼êư¤Ç¡Ö::text¡×¤òÄɵ­¤·¤ÆÌÀ¼¨Åª¤Ë¥­¥ã¥¹¥È¤¹¤ì¤Ð¤è¤¤¡£

¢¨º£²ó¤ÎÎã¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¥¨¥é¡¼¤¬½Ð¤Ê¤¯¤Ê¤ë¡£
select * from nobuneko_table where nobuneko_time::text like '%-%-%';

¤Þ¤¿¡¢¾åµ­¤ÈƱÍͤËto_timestamp¤ò»ÈÍѤ¹¤ë»þ¤â¥­¥ã¥¹¥È¤¹¤ëɬÍפ¬¤¢¤ë¡£
Î㤨¤Ð¡¢8.3¤è¤ê¤âÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤À¤ÈÌäÂê¤Ê¤«¤Ã¤¿¤Î¤À¤¬¡¢
to_timestamp(current_date, 'YYYY/MM')
¤È¤¹¤ë¤È¡¢8.3¤Ç¤Ï
function to_timestamp(date, unknown) does not exist
¤È¤«
operator does not exist: text >= date
¤È¤¤¤Ã¤¿¥¨¥é¡¼¤Ë¤Ê¤ë¡£
¤½¤³¤Ç¡¢
to_timestamp(current_date::text, 'YYYY/MM')
¤È¤¤¤Ã¤¿¤è¤¦¤ËÌÀ¼¨Åª¤Ë¥Æ¥­¥¹¥È·¿¤Ë¥­¥ã¥¹¥È¤¹¤ëɬÍפ¬¤¢¤ë¡£

°Ê¾å¡£

PostgreSQL¤Çpg_dump¤ò¤·¤è¤¦¤È¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬µ¯¤­¤ë¤³¤È¤¬¤¢¤ë¡£

pg_dump: dumpClasses(): SQL command failed
pg_dump: Error message from server: ERROR:  invalid memory alloc request size 4294967293
pg_dump: The command was: FETCH 100 FROM _pg_dump_cursor

¤³¤Î¥¨¥é¡¼¤¬µ¯¤­¤¿»þ¤Ë¡Öinvalid memory alloc request size 4294967293¡×¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤ò¸«¤Æ¡ÖPostgreSQL¤Î¶¦Í­¥á¥â¥ê¤Ê¤É¥á¥â¥ê´ØÏ¢¤ÎÀßÄ꤬¤ª¤«¤·¤¤¤Î¤«¤Ê¤¡¡©¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¡©PostgreSQL¤¬»È¤¨¤ë¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤òÁý¤ä¤»¤Ð¤¤¤¤¤Î¤«¤Ê¤¡¡×¤Ê¤É¤È»×¤Ã¤Æ¥á¥â¥ê¤ÎÀßÄêÃͤò¿§¡¹ÊѤ¨¤Æ¤ß¤¿¤ê¤·¤¿¤Î¤À¤¬¡¢Á´¤¯¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£
¤½¤³¤Ç¡¢¸¡º÷¥µ¥¤¥È¤Ç¡Öinvalid memory alloc request size 4294967293¡×¤Ç¸¡º÷¤¹¤ë¤È¡¢°Ê²¼¤Îµ­»ö¤¬¸«¤Ä¤«¤Ã¤¿¡£

BUG #2534: ERROR: invalid memory alloc request size 4294967293
http://archives.postgresql.org/pgsql-bugs/2006-07/msg00072.php
¡Ôά¡Õ
While executing pg_dump command, I am getting the following errors. Plz
help me to solve the problem.
pg_dump -O magellan >
magellan_154_db_postgres_10july2006_1149amist.sql
pg_dump: ERROR:  invalid memory alloc request size 4294967293
pg_dump: SQL command to dump the contents of table "ctblankcall" failed:
PQendcopy() failed.
¡Ôά¡Õ

¤ª¡¼¡¢¤Þ¤µ¤ËƱ¤¸¤è¤¦¤Ê¥¨¥é¡¼¡£
¤·¤«¤·¡¢¤³¤Î¼ÁÌä¤Ë¤Ï¥ì¥¹¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤³¤ì¤À¤È¸¶°ø¤Ïʬ¤«¤é¤Ê¤¤¡£
·ë¶É¡¢¤³¤Î¥¨¥é¡¼¤¬µ¯¤­¤ëº¬ËÜŪ¤Ê¸¶°ø¤Ïʬ¤«¤é¤Ê¤«¤Ã¤¿¤Î¤À¤¬¡¢¤È¤Ë¤«¤¯pg_dump¤·¤¿¤«¤Ã¤¿¤Î¤Ç¡¢°Ê²¼¤ÎÊýË¡¤Ç̵Íý¤ä¤ê²ò·è¤·¤¿¡£

¡Ê1¡Ëpg_dump¤Ë¼ºÇÔ¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬»ý¤Ä³Æ¥Æ¡¼¥Ö¥ë¤ò¸ÄÊ̤Ëpg_dump¤·¡¢pg_dump¤Ë¼ºÇÔ¤¹¤ë¥Æ¡¼¥Ö¥ë¤òÆÃÄꤹ¤ë¡£

¡Ê2¡Ëpg_dump¤Ë¼ºÇÔ¤¹¤ë¥Æ¡¼¥Ö¥ë¤¬ÆÃÄê¤Ç¤­¤¿¤é¡¢¤µ¤é¤Ë¡Öselect * from ¥Æ¡¼¥Ö¥ë̾ where ¹Ê¹þ¾ò·ï¡×¤Ç¸¡º÷¤Ë¼ºÇÔ¤¹¤ë¥ì¥³¡¼¥É¤òÆÃÄꤹ¤ë¡£

¡Ê3¡Ë¸¡º÷¤Ë¼ºÇÔ¤¹¤ë¥ì¥³¡¼¥É¤òÆÃÄê¤Ç¤­¤¿¤é¡¢¤µ¤é¤Ë¡Öselect ¥«¥é¥à̾1 from ¥Æ¡¼¥Ö¥ë̾ where ¹Ê¹þ¾ò·ï¡×¤Î¤è¤¦¤Ë¸¡º÷¤Ë¼ºÇÔ¤¹¤ë¥«¥é¥à¤òÆÃÄꤹ¤ë¡£
¢¨¡Öselect ¥«¥é¥à̾1 from ¥Æ¡¼¥Ö¥ë̾ where ¹Ê¹þ¾ò·ï¡×¤Ç¸¡º÷¤ËÀ®¸ù¤·¤¿¤é¡Ö¥«¥é¥à̾1¡×¤ÏÌäÂê¤Ê¤·¡¢Æ±¤¸where¶ç¤Ç¡Öselect ¥«¥é¥à̾2 from ¥Æ¡¼¥Ö¥ë̾¡×¤È¤·¤¿»þ¤Ë¸¡º÷¤Ë¼ºÇÔ¤·¤¿¤é¡¢¡Ö¥«¥é¥à̾2¡×¤ËÌäÂꤢ¤ê¡¢¤ÈÆÃÄê¤Ç¤­¤ë¡£

¡Ê4¡ËÌäÂ꤬À¸¤¸¤Æ¤¤¤ë¥«¥é¥à¤òŬÅö¤ÊÃͤÇupdate¤¹¤ë¡£
Á´¤Æ¤ÎÉÔŬÀڤʥ«¥é¥à¤ÎÃͤòŬÀÚ¤ÊÃͤÇupdate¤¹¤ë¤³¤È¤Çpg_dump¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¢¨¡Ê3¡Ë¡Á¡Ê4¡Ë¤¢¤¿¤ê¤Ï¡¢°ÊÁ°½ñ¤¤¤¿°Ê²¼¤Îµ­»ö¤È¤Û¤ÜƱ¤¸¡£
¡Ô»²¹Í¡Õ
PostgreSQL¤Î¥¨¥é¡¼¡Ötimestamp out of range¡×¤È¡ÖFETCH 100 FROM _pg_dump_cursor¡×¤Î¸¶°ø¤È²ò¾ÃÊýË¡¤Ë¤Ä¤¤¤Æ

¤³¤Îµ­»ö¤Î»þ¤Ï¡¢¤¢¤ë1¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Î1¤Ä¤Î¥«¥é¥à¤ËÉÔŬÀÚ¤ÊÃͤ¬Æþ¤Ã¤Æ¤·¤Þ¤Ã¤¿¤³¤È¤¬¤Û¤Ü³Î¼Â¤Ç¡¢PostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÃͤòÅϤ¹PHP¥×¥í¥°¥é¥à¦¤Î¥Ð¥°¤Î²ÄǽÀ­¤¬¹â¤¤¡¢¤È¿ä¬¤Ç¤­¤¿¡£¤½¤Î¤¿¤á¡¢PHP¥×¥í¥°¥é¥à¤Î¥Ð¥°µ­½Ò¤â½¤Àµ¤·¤¿¤Î¤Çº£¸åºÆÈ¯¤¹¤ë²ÄǽÀ­¤ÏÄ㤤¤È»×¤Ã¤Æ°Â¿´¤·¤Æ¤¤¤ë¡£
°ìÊý¡¢·ÇÂê¤Î·ï¤Î¥¨¥é¡¼¤Ï¡¢Ä´ºº¤Î·ë²Ì¡¢Ê£¿ô¤Î¥Æ¡¼¥Ö¥ë¤ÇÉÔŬÀڤʥ«¥é¥à¤¬¿ô²Õ½ê¸«¤Ä¤«¤Ã¤¿¤³¤È¤Ë¤è¤ê¡¢¥×¥í¥°¥é¥à¤ÎÉÔ¶ñ¹ç¤Î²ÄǽÀ­¤Ï¥¼¥í¤Ç¤Ï¤Ê¤¤¤Ë¤·¤í¡¢¹Í¤¨¤Ë¤¯¤¤¤È»×¤Ã¤¿¡£¤½¤Î¾¤Ë¹Í¤¨¤é¤ì¤½¤¦¤Ê¸¶°ø¤Ï¡¢Linux¤Îsyslog¤Ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Î¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤¿¤Î¤Ç¡¢¤Ò¤ç¤Ã¤È¤·¤¿¤é¡¢PostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¹½À®¤¹¤ë¥Õ¥¡¥¤¥ë¤Î°ìÉô¤¬·ç»¤·¤Æ¤·¤Þ¤Ã¤¿¤Î¤«¤Ê¤¡¡¢¤È¤¤¤¦PostgreSQL¤È¤ÏľÀܤϴط¸¤Î¤Ê¤¤À¤³¦¤Ç¤Î¸¶°ø¡£¿ä¬¤Î°è¤ò½Ð¤Ê¤¤¤¬¡¢¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤ë»þÅÀ¤ÇÁ´Éô¤½¤ì¤¬¸¶°ø¤Ë»×¤¨¤Æ¤­¤¿¤Î¤Ç¡¢¤³¤ì°Ê¾å¤ÎÄ´ºº¤Ï̵Â̤˻פ¨¤¿¤Î¤Ç¤ä¤á¤¿¡Ê¤â¤¦¸¡º÷¥µ¥¤¥È¤Ç¤Ï¤¢¤é¤«¤¿Ä´¤Ù¤Ä¤¯¤·¤ÆÂ¾¤Ë¹Í¤¨¤é¤ì¤¦¤ë¸¶°ø¤¬¤Ê¤«¤Ã¤¿¤³¤È¤â¤¢¤ë¤¬¡¦¡¦¡¦¡Ë¡£º£ÅÙ¡¢Æ±¤¸¥¨¥é¡¼¤¬½Ð¤¿»þ¤Ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤½¤Î»þ¤Ï¤½¤Î»þ¤ÇÄ´ºº¡¦¡¦¡¦¡£

 

psql¤ÇSQL¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¼Â¹Ô¤·¤¿ºÝ¤Ë¡¢¡Öinvalid byte sequence for encoding "EUC_JP"¡×¤È¤¤¤Ã¤¿¥¨¥é¡¼¤¬½Ð¤ë»þ¤¬¤¢¤ë¡£

¡ÔÎã¡Õ
psql:test.sql:2001: ERROR:  invalid byte sequence for encoding "EUC_JP": 0x93ab
¤³¤ÎÎã¤Î¾ì¹ç¡¢psql¤Çtest.sql¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Æ¼Â¹Ô¤·¤¿¤È¤³¤í¡¢EUC_JP¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤Ï̵¸ú¤Ê¥Ð¥¤¥ÈÎó¡Ö0x93ab¡×¤¬test.sql¤Î2001¹ÔÌܤǸ«¤Ä¤«¤Ã¤¿¡¢¤È¤¤¤¦¥¨¥é¡¼¤Î¤è¤¦¤À¡£
¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Î¿¤¯¤¬¡¢psql¤ÇÆÉ¤ß¹þ¤â¤¦¤È¤·¤¿¥Õ¥¡¥¤¥ë¤ÎÃæ¤Çµ­½Ò¤·¤Æ¤¤¤ëʸ»ú¤Î¥³¡¼¥É¤Ë¸í¤ê¤¬¤¢¤ë¡£Î㤨¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤Îʸ»úÎóÁ´¤Æ¤òEUC_JP¤Îʸ»ú¥³¡¼¥É¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¤È¤³¤í¤ò¡¢SHIFT_JIS¡Ê¥·¥Õ¥ÈJIS¡Ë¤Ê¤ÉÊ̤Îʸ»ú¥³¡¼¥É¤òº®ºß¤µ¤»¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤À¡£Â¿¤¯¤Î¾ì¹ç¡¢ÌäÂê¤È¤Ê¤ë¤Î¤ÏSHIFT_JIS¤Îµ¡¼ï°Í¸ʸ»ú¤À¤È»×¤¦¡£
º£²ó¤ÎÎã¤Î¤è¤¦¤Ë¡¢EUC_JP¥Õ¥¡¥¤¥ë¤ÎÃæ¤ËSHIFT_JIS¤¬º®ºß¤·¤Æ¤·¤Þ¤Ã¤¿Ê¸»ú²½¤±¥Õ¥¡¥¤¥ë¤ò½¤Àµ¤¹¤ë¾ì¹ç¡¢°Ê²¼¤Î¼ê½ç¤Ç½¤Àµ¤Ç¤­¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

1 ¥Æ¥­¥¹¥È¥¨¥Ç¥£¥¿¡Ê½¨´Ý¥¨¥Ç¥£¥¿Åù¡Ë¤ÇEUC_JP¤È¤·¤Æ¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢PostgreSQL¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ç»ØÅ¦¤µ¤ì¤Æ¤¤¤ë¹Ô¤Çʸ»ú²½¤±¤¬È¯À¸¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£¤³¤Î»þ¡¢Ê¸»ú²½¤±¤·¤Æ¤¤¤ë¤Î¤Ï1ʸ»ú¤À¤±¤Ç¤Ï¤Ê¤¯¡¢Á°¸å¤ÎÊ£¿ô¤Îʸ»ú¤â´¬¤­Åº¤¨¤Ë¤·¤ÆÊ¸»ú²½¤±¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£
2 ¥Æ¥­¥¹¥È¥¨¥Ç¥£¥¿¡Ê½¨´Ý¥¨¥Ç¥£¥¿Åù¡Ë¤Ç¥·¥Õ¥ÈJIS¤È¤·¤Æ¥Õ¥¡¥¤¥ë¤ò³«¤¯
¡¡¢¨EUC_JP¤Îʸ»ú¥³¡¼¥É¤Ç½ñ¤«¤ì¤Æ¤¤¤ëÉôʬ¤Ïʸ»ú²½¤±¤·¤Æ¤·¤Þ¤¦¤¬¡¢¹²¤Æ¤Ê¤¤¤³¤È¡£
3 ¡Öinvalid byte sequence for encoding "EUC_JP"¡×¤Ç»ØÅ¦¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ËÁêÅö¤¹¤ëʸ»úÎó¤ò¥¨¥Ç¥£¥¿¤Î¸¡º÷µ¡Ç½¤Ç¸¡º÷¤·¡¢Ê¸»ú²½¤±¤È̵±ï¤½¤¦¤Ê¥·¥ó¥°¥ë¥Ð¥¤¥È¤Îʸ»úÎó¤ËÃÖ´¹¤¹¤ë¡£
¡¡¢¨º£²ó¤ÎÎã¤Ç¤Ï¡¢Ê¸»ú¥³¡¼¥É¡Ö0x93ab¡×¤ËÁêÅö¤¹¤ëSHIFT_JIS¤Îʸ»ú¥³¡¼¥É¡ÖÆ­¡×¤ò¸¡º÷¤·¡¢¡Ömojibake¡×¤È¤¤¤¦Ê¸»úÎó¤Ë½ñ¤­´¹¤¨¤ë¡£
4 ¥Õ¥¡¥¤¥ë¤ò¥·¥Õ¥ÈSHIFT_JIS¤Î¤Þ¤ÞÊݸ¤¹¤ë¡£
¡¡¢¨½¨´Ý¥¨¥Ç¥£¥¿¤Ç¤·¤«»î¤·¤Æ¤¤¤Ê¤¤¤¬¡¢¤³¤Î¾ì¹ç¤Ç¤âEUC_JP¤Îʸ»ú¥³¡¼¥É¤ÇÊݸ¤Ç¤­¤Æ¤¤¤ë¡£
5 ¥Õ¥¡¥¤¥ë¤òºÆÅÙ³«¤¯¤È¡¢Ê¸»ú²½¤±¤·¤Æ¤¤¤¿Éôʬ¤¬¡Ömojibake¡×¤Ë¤Ê¤ê¡¢¤µ¤é¤Ë¡Ömojibake¡×¤ÎÁ°¸å¤Îʸ»úÎó¤Îʸ»ú²½¤±¤â²ò¾Ã¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£¡Ömojibake¡×¤ÎÉôʬ¤Ï¡¢ËÜÍè¤Îʸ»úÎó¤¬Ê¬¤«¤ê¼¡Â衢Ŭµ¹½¤Àµ¡£

¢¨°Ê²¼¤Ë¡¢Ê¸»ú¥³¡¼¥É¡¢SHIFT_JIS¤Ç¸«¤¨¤ëʸ»úÎó¡¢ËÜÍè¤Îʸ»ú¡Êµ¡¼ï°Í¸ʸ»ú¡Ë¤ÎÁȤ߹ç¤ï¤»¤ÎÎã¤ò¼¨¤¹¡£
µ¡¼ï°Í¸ʸ»ú¤ÏÅö¥Ú¡¼¥¸¤ò±ÜÍ÷¤·¤Æ¤¤¤ëOS¤ä¥Ö¥é¥¦¥¶Åù¤Î´Ä¶­¤ÎÁê°ã¤Ë¤è¤ê¡¢Àµ¾ï¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡¢¡ÖÂåÂØÉ½¸½¡×¤ÎÉôʬ¤ò¸«¤Æ¡¢²¿¤òµ­½Ò¤·¤Æ¤¤¤ë¤«¤ò¿ä¬¤·¤ÆÄº¤±¤ì¤Ð¤È»×¤¦¡ÊËÜÅö¤Ï²èÁü¤Ç·ÇºÜ¤¹¤ì¤Ð¤è¤¤¤Î¤À¤¬¡¢ÌÌÅݤÀ¤Ã¤¿¤Î¤Ç¾Êά¡Ë¡£

ʸ»ú¥³¡¼¥É SHIFT_JIS¤Ç¸«¤¨¤ëʸ»úÎó ËÜÍè¤Îʸ»ú¡Êµ¡¼ï°Í¸ʸ»ú¡Ë ÂåÂØÉ½¸½
0x93ab Æ­ ­µ I
0x93ac Æ® ­¶ II
0x93ad Ư ­· III
0x93ae ư ­¸ IV
0x93af Ʊ ­¹ V
0x93b0 Ʋ ­º VI
0x93b9 Æ» ­ê (³ô)
0x93bb ƽ ­ä Tel
0x94bc Ⱦ ùþ ÆÁ
0x96fe Ìñ޹ üâ ¹â

¢¨Ê¸»ú¥³¡¼¥É¤¬0x96fe¤Î¤â¤Î¤Ï¡¢¥·¥Õ¥ÈJIS¤Ë³ºÅö¥³¡¼¥É¤¬¤Ê¤µ¤½¤¦¤Ë¸«¤¨¤¿¡£¡ÖÌñ޹¡×¤È¤¤¤¦¡ÖÌñ¡×¤È¡Ö޹¡×¤ÎÁȤ߹ç¤ï¤»¤¬µ¡¼ï°Í¸ʸ»ú¡Öüâ¡×¡ÊÂåÂØÉ½¸½¡Ö¹â¡×¡Ë¤Ë³ºÅö¤·¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤¿¤¬¡¢´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤â¤¹¤ë¡£

¾åµ­¤Î¤è¤¦¤ÊÎã¤Ï¾¤Ë¤â¤¤¤Ã¤Ñ¤¤¤¢¤ë¤È»×¤¦¤¬¡¢»ä¸Ä¿Í¤Ç¤Þ¤È¤á¤é¤ì¤¿¤Î¤Ï¤³¤³¤Þ¤Ç¡£º£¸å¡¢¿·¤¿¤ËƱÍͤÎÌäÂê¤ËÁø¶ø¤¹¤ì¤ÐÄɵ­¤¹¤ë¤«¤â¡Êµ¤ÎϤ¬¤¢¤ì¤Ð¡¦¡¦¡¦¡Ë¡£

¸Ä¿ÍŪ¤Ê»×¤¤¤È¤·¤Æ¤Ï¡¢¡Öinvalid byte sequence for encoding "EUC_JP"¡×¤È¤¤¤¦¥¨¥é¡¼¤Ø¤Î°ìÈÖ¤ÎÂнèºö¤Ï¡¢¤Þ¤º¤Ïpsql¤Ç¥Õ¥¡¥¤¥ëÆÉ¤ß¹þ¤ß¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢¥Õ¥¡¥¤¥ë¤ò¥Æ¥­¥¹¥È¥¨¥Ç¥£¥¿¤Ç³«¤¤¤Æ¤ß¤ÆÊ¸»ú²½¤±¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢Ê¸»ú²½¤±¤·¤Æ¤¤¤¿¤éʸ»ú²½¤±¤·¤Ê¤¤¤è¤¦¤Ë½¤Àµ¤ò¤·¤¿¾å¤Çpsql¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤À¤È»×¤¦¡£¤·¤«¤·¡¢Ê¸»ú²½¤±²Õ½ê¤¬ÂçÎ̤ˤ¢¤ë¤È¡¢¾åµ­¤Î¤è¤¦¤ÊÃÖ´¹ºî¶È¤ÏÂçÊÑÏ«ÎϤ¬¤«¤«¤ë¤·¡¢»þ´Ö¤Î̵Â̤À¤È»×¤¦¤Î¤Ç¡¢¶ËÎÏÈò¤±¤ë¤è¤¦¤Ë¤·¤¿¤¤¡£¤½¤¦¡¢ËÜÍè¤Ï¡¢²¿¸Î¥Õ¥¡¥¤¥ë¤¬Ê¸»ú²½¤±¤·¤Æ¤¤¤ë¤«¤Î¸¶°ø¤È²þÁ±ºö¤ò¹Í¤¨¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¤Î¤À¤í¤¦¤Ê¤¡¡¦¡¦¡¦¡£

CSE¤Ç

update ¥Æ¡¼¥Ö¥ë̾ set ¥«¥é¥à̾1 = 'Ç­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ª' where neko_id = 100;

¤Î¤è¤¦¤ÊSQL¤ò½ñ¤¤¤Æ¼Â¹Ô¤¹¤ë¤È¡¢Ä̾ï¤À¤È¡¢neko_id¤¬100¤Î¥ì¥³¡¼¥É¤Î¡Ö¥«¥é¥à̾1 ¡×¤Ë¡ÖÇ­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ªÇ­Âç¹¥¤­¡ª¡×¤È¤¤¤¦Ãͤ¬Æþ¤ë¡£

¤·¤«¤·¡¢º£Æü¡¢¤È¤Æ¤âŤ¤Ê¸»úÎó¡Ê¡ÖÇ­Âç¹¥¤­¡ª¡×¤Î²¿ÀéÇܤʤΤ«¤Ê¡©¡Ë¤ò¥«¥é¥à̾1¤Ë¥»¥Ã¥È¤·¤Æ¹¹¿·¡ÊUPDATE¡Ë¤·¤è¤¦¤È¤¹¤ë¤È¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£

SQL¼Â¹ÔÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
PQsendQuery() -- query is too long.  Maximum length is 16382

r_nobu¤¬Å¬Åö¤ËÌõ¤¹¤È¡Ö¡ÊSQL¤Î¡Ë¥¯¥¨¥ê¡¼¤¬¤¢¤Þ¤ê¤Ë¤âŤ¹¤®¤Þ¤¹¡£Ä¹¤µ¤ÎºÇÂçÃͤϡ¢16382¤Ç¤¹¡×¤Ã¤Æ¤³¤È¤ß¤¿¤¤¤À¤±¤É¡¢¤½¤ó¤Ê¤³¤È¤ò¸À¤ï¤ì¤Æ¤â¤Ê¤¡¡£¡Ö16382¡×¤Îñ°Ì¤Ï²¿¤À¤í¤¦¡©¤Á¤Ê¤ß¤Ë¡¢¥«¥é¥à̾1¤Ï¡¢¥Æ¥­¥¹¥È·¿¤Ê¤Î¤Ç¡¢¿ôËüʸ»úÄøÅÙ¤Îʸ»úÎó¤Ê¤É³Ú¾¡¤ÇÆþ¤ë¤Ï¤º¡£

¸¶°øÄɵ᤬ÌÌÅݤˤʤäƤ­¤¿¤Î¤Ç¡¢¤È¤ê¤¢¤¨¤º¡¢CSE¤Ç¤ÎUPDATE¤ò¤ä¤á¤Æ¡¢Linux¤Î¥³¥ó¥½¡¼¥ë¤ÇPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤ÆÆ±¤¸SQL¤ò¼Â¹Ô¤·¤¿¤éÌäÂê¤Ê¤¯UPDATE¤Ç¤­¤¿¡£¤È¤¤¤¦¤³¤È¤Ï¡¢¾åµ­¤Î¥¨¥é¡¼¤Ï¡¢CSE¤Î²¿¤é¤«¤Î»ÅÍͤǰú¤Ã¤«¤«¤Ã¤Æ¤¤¤ë¤Î¤«¤Ê¤¡¡£

º£ÅÙ¡¢Ëü°ì»þ´Ö¤¬¤¢¤ì¤Ð¡¢Ä´¤Ù¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢¤¿¤Ö¤ó¡¢º£¸å¤â¡¢Æ±¤¸¥¨¥é¡¼¤¬½Ð¤¿¤éLinux¥³¥ó¥½¡¼¥ë¤òᤤ¤Æ¡Ö¤³¤ì¤ÇÌäÂê¤Ê¤¤¤«¤é¥¤¥¤¥ä¡ª¡×¤Èƨ¤²¤ë¤³¤È¤À¤í¤¦¡Ê¾Ð¡Ë¡£

PostgreSQL¤Ç¡Ö'¡×¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡¿Ã±°ì°úÍÑÉä¡Ë¤ò¥¨¥¹¥±¡¼¥×½èÍý¤¹¤ëÊýË¡¤ò°Ê²¼¤Ë¥á¥â¤·¤Æ¤ª¤¯¡£

¢£SQL¤Î¼Â¹Ô¤Ë¼ºÇÔ¤¹¤ëÎã
insert into nobuneko_dictionary (dic_name,dic_name2) values ('Foundation's Edge','¥Õ¥¡¥¦¥ó¥Ç¡¼¥·¥ç¥ó¤ÎÈàÊý¤Ø');
¤³¤ÎSQL¤ò¼Â¹Ô¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£

ERROR:  syntax error at or near "s"
LINE 3: ...ictionary (dic_name,dic_name2) values ('Foundation's Edge','...
                                                              ^

********** ¥¨¥é¡¼ **********

ERROR: syntax error at or near "s"
SQL¥¹¥Æ¡¼¥È:42601
ʸ»ú:112

¡ÖFoundation's Edge¡×¤ò¡Ö'¡×¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡¿Ã±°ì°úÍÑÉä¡Ë¤Ç°Ï¤ó¤Ç¤¤¤ë¤Î¤À¤¬¡¢¤½¤Î°Ï¤ó¤ÀÃæ¤Ë¡Ö'¡×¤¬¤½¤Î¤Þ¤Þ¤¢¤ë¤³¤È¤¬¥¨¥é¡¼¤Î¸¶°ø¡£¥¨¥é¡¼¤ò²óÈò¤·¡¢SQL¤Î¼Â¹Ô¤òÀ®¸ù¤µ¤»¤ë¤Ë¤Ï¡¢¡Ö'¡×¤ò¥¨¥¹¥±¡¼¥×½èÍý¤¹¤ëɬÍפ¬¤¢¤ë¡£

¢£SQL¤Î¼Â¹Ô¤ËÀ®¸ù¤¹¤ëÎã1
insert into nobuneko_dictionary (dic_name,dic_name2) values ('Foundation''s Edge','¥Õ¥¡¥¦¥ó¥Ç¡¼¥·¥ç¥ó¤ÎÈàÊý¤Ø');
¢¨¡Ö'¡×¤ÎÁ°¤Ë¡Ö'¡×¤òÉÕ¤±¤ë¡£
¡¡¤Ä¤Þ¤ê¡¢¡Ö'Foundation's Edge'¡×¤ò¡Ö'Foundation''s Edge'¡×¤È¤¹¤ë¡£

¢£SQL¤Î¼Â¹Ô¤ËÀ®¸ù¤¹¤ëÎã2
insert into nobuneko_dictionary (dic_name,dic_name2) values (E'Foundation\'s Edge','¥Õ¥¡¥¦¥ó¥Ç¡¼¥·¥ç¥ó¤ÎÈàÊý¤Ø');
¢¨¡ÖE'...\'...'¡×¤Î¤è¤¦¤Ëʸ»úÎó¤ò°Ï¤à¡Ö'¡×¤ÎÁ°¤Ë¡ÖE¡×¡ÊÂçʸ»ú¤Ç¤â¾®Ê¸»ú¤Ç¤â¤è¤¤¤é¤·¤¤¡Ë¤òÉÕ¤±¡¢°Ï¤Þ¤ì¤¿Ê¸»úÎó¤ÎÃæ¤Ë¤¢¤ë¡Ö'¡×¤ÎÁ°¤Ë¤Ï¡Ö\¡×¡ÊWindows¤Ê¤éȾ³Ñ¤Î¡ï¥Þ¡¼¥¯¡¢Linux¤Ê¤é¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡Ë¤òÉÕ¤±¤ë¡£
¡¡¤Ä¤Þ¤ê¡¢¡Ö'Foundation's Edge'¡×¤ò¡ÖE'Foundation\'s Edge'¡×¤È¤¹¤ë¡£

¢£SQL¤Î¼Â¹Ô¤ËÀ®¸ù¤¹¤ë¤¬¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤ëÎã
insert into nobuneko_dictionary (dic_name,dic_name2) values ('Foundation\'s Edge','¥Õ¥¡¥¦¥ó¥Ç¡¼¥·¥ç¥ó¤ÎÈàÊý¤Ø');
¢¨¾åµ­¤Î¡ÖSQL¤Î¼Â¹Ô¤ËÀ®¸ù¤¹¤ëÎã2¡×¤È¤Î°ã¤¤¤Ï¡¢Ê¸»úÎó¤ò°Ï¤à¡Ö'¡×¤ÎÁ°¤Ë¡ÖE¡×¤òµ­½Ò¤·¤Ê¤¤¤³¤È¡£
¡¡¤³¤ÎÎã¤Î¾ì¹ç¡¢SQL¤Î¼Â¹Ô¤Ë¤ÏÀ®¸ù¤¹¤ë¤¬¡¢°Ê²¼¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë¡£

WARNING:  nonstandard use of \' in a string literal
LINE 4: ... nobuneko_dictionary (dic_name,dic_name2) values ('Foundatio...
                                                             ^
HINT:  Use '' to write quotes in strings, or use the escape string syntax (E'...').
¥¯¥¨¥ê¡¼¤Ï¡¢À®¸ù¤·¤Þ¤·¤¿:  1 ¹Ô¤Î±Æ¶Á¤¬¤¢¤ê, ¼Â¹Ô»þ´Ö¤Ï¡¢16 ¥ß¥êÉäǤ·¤¿¡£

¤³¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ë¤è¤ë¤È¡¢¡Ö\'¡×¤È¤¤¤Ã¤¿½ñ¤­Êý¤ÏÈóɸ½à¤È¤Î¤³¤È¡£
¥Ò¥ó¥È¡ÊHINT)¤ò»²¹Í¤Ë¤¹¤ë¤È¡¢¡Ö'¡×¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¾ì¹ç¤Ï¡¢¡Ö\'¡×¤Ç¤Ï¤Ê¤¯¡¢¡Ö''¡×¤Î¤è¤¦¤Ë¡Ö'¡×¤ò2¤ÄϢ³¤Çµ­ºÜ¤¹¤ë¤«¡¢¡ÖE'...\'...'¡×¤È¤¹¤ì¤Ð¤è¤¤¤è¤¦¤À¡£

Linux¥³¥ó¥½¡¼¥ë¤Çpsql -U postgres nobuneko¡Ê¡Ê¢¨¡Önobuneko¡×¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡Ë¡Ë¤ÇÀܳ¤Ç¤­¤Ê¤¤»þ¤Ë/var/lib/pgsql/data/pg_log/¤Ç¥í¥°¤ò³Îǧ¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£

FATAL:  no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "nobuneko", SSL off

¤³¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¸«¤ë¸Â¤ê¡¢¤É¤¦¤ä¤é¡¢¸½ºß¤Îpg_hba.conf¤ÎÀßÄê¤Ç¤Ï¡¢postgres¥æ¡¼¥¶¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¡Önobuneko¡×¤Ë127.0.0.1¤È¤¤¤¦¥Û¥¹¥È¤«¤é¤ÏÀܳ¤¬¤Ç¤­¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£¤Ä¤Þ¤ê¡¢ÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¥¨¥é¡¼¤ò²ò·è¤Ç¤­¤ë¤È¿ä¬¤Ç¤­¤ë¡£

¤³¤Î¾ì¹ç¡¢/var/lib/pgsql/data/pg_hba.conf¤ÎÀßÄê¤ò³Îǧ¤¹¤ë¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£
# IPv4 local connections:
host    all         all         192.168.2.0/24          trust

127.0.0.1¤Îµ­½Ò¤¬¤Ê¤«¤Ã¤¿¡£¤Ä¤Þ¤ê¡¢127.0.0.1¤«¤éÀܳ¤Ç¤­¤Ê¤¤¸¶°ø¤Ï¡¢Ã±½ã¤Ë127.0.0.1¤«¤é¤ÎÀܳ¤òµö²Ä¤¹¤ëÀßÄ꤬pg_hba.conf¤Ë¤Ê¤«¤Ã¤¿¤«¤é¤À¡£

¤½¤³¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ë127.0.0.1¤ÎÀßÄê¤òÄɵ­¤¹¤ë¡£

# IPv4 local connections:
host    all         all         127.0.0.1/32            trust
host    all         all         192.168.2.0/24          trust

¤³¤ì¤Ç¡¢¡Ê¾¤Ë²¿¤é¤«¤ÎÀ©¸Â¤¬¤Ê¤±¤ì¤Ð¡ËpostgreSQL¤òºÆµ¯Æ°¸å¡¢127.0.0.1¤«¤é¤âpsql¤Ç¤ÎÀܳ¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

Linux¥µ¡¼¥Ð¤ÇPostgreSQL¤òµ¯Æ°¤·¤è¤¦¤È¤¹¤ë¤È¡¢

¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò½é´ü²½Ãæ: mkdir: ¥Ç¥£¥ì¥¯¥È¥ê `/var/lib/pgsql/data/pg_log' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹

¤È¤¤¤Ã¤¿¥¨¥é¡¼¤¬½Ð¤Æº¤¤ë¤³¤È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£

¡ÔÎã¡Õ
[root@nobuneko data]# /etc/rc.d/init.d/postgresql start
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò½é´ü²½Ãæ: mkdir: ¥Ç¥£¥ì¥¯¥È¥ê `/var/lib/pgsql/data/pg_log' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤¹
                                                           [¼ºÇÔ]
postgresql ¥µ¡¼¥Ó¥¹¤ò³«»ÏÃæ:                               [¼ºÇÔ]
/var/log/messages¤ò¸«¤Æ¤ß¤ë¤È¡¢°Ê²¼¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤¿¡£

Oct 31 23:12:02 nobuneko postgres[12846]: [1-1] FATAL:  "/var/lib/pgsql/data" is not a valid data directory
Oct 31 23:12:02 nobuneko postgres[12846]: [1-2] DETAIL:  File "/var/lib/pgsql/data/PG_VERSION" is missing.

¤Ê¤ó¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ë¤è¤ë¤È¡¢/var/lib/pgsql/data/ÇÛ²¼¤Ë¤¢¤ë¤Ù¤­¡ÖPG_VERSION¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬PostgreSQL¤¬µ¯Æ°¤Ç¤­¤Ê¤¤¸¶°ø¤Î¤è¤¦¤À¤Ã¤¿¡£

¾¤Î¤Þ¤È¤â¤ËPostgreSQL¤¬Æ°ºî¤·¤Æ¤¤¤ëLinux¥µ¡¼¥Ð¤Ç³Îǧ¤·¤Æ¤ß¤ë¤È¡¢/var/lib/pgsql/data/ÇÛ²¼¤Ë¡ÖPG_VERSION¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¤Î¤Ç¡¢¤½¤ì¤ò¸«¤Æ¤ß¤ë¡£

ls -ahl¤Ç¸«¤Æ¤ß¤ë¤È¡¢¸¢¸Â¤Ê¤É¤Ï¡¢

-rw-------  1 postgres postgres    4 10·î 23 00:24 PG_VERSION

¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤Ï¡¢

[root@nobuneko2 data]# cat PG_VERSION
8.1

¤È¤Ê¤Ã¤Æ¤¤¤¿¡£
¤Ä¤Þ¤ê¡¢¡ÖPG_VERSION¡×¤ÎÃæ¿È¤Ï¡¢¡Ö8.1¡×¤È¤¤¤¦Ê¸»úÎó¤À¤±¤«¡Ä¡£PostgreSQL¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤ò½ñ¤¤¤Æ¤¤¤ë¤À¤±¤Ê¤Î¤À¤í¤¦¤±¤ì¤É¡¢¤Ê¤ó¤ÆÃ±½ã¤Ê¥Õ¥¡¥¤¥ë¡Ê¾Ð¡Ë¡£
¤½¤³¤Ç¡¢PostgreSQL¤Îµ¯Æ°¤Ë¼ºÇÔ¤·¤Æ¤¤¤ëLinux¥µ¡¼¥Ð¤Î/var/lib/pgsql/data/ÇÛ²¼¤Ë¤Þ¤È¤â¤ËPostgreSQL¤¬Æ°ºî¤·¤Æ¤¤¤ë¥µ¡¼¥Ð¤ÎPG_VERSION¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤·¤Æ¤½¤Î¤Þ¤ÞÀßÃÖ¤·¤Æ¤ß¤¿¡Ê¥Õ¥¡¥¤¥ë¤Î¸¢¸Â¤â¤Þ¤È¤â¤Ëưºî¤·¤Æ¤¤¤ë¥µ¡¼¥Ð¤ÈƱ¤¸¤Ë¤·¤Æ¤ª¤¯¡Ë¡£

¤¹¤ë¤È¡¢PostgreSQL¤Îµ¯Æ°¤ËÀ®¸ù¤·¤¿¡£

¸¶°ø¤È²ò·èÊýË¡¤¬Ê¬¤«¤ê¡¢´ò¤·¤¤¤Î¤À¤±¤ì¤É¡¢¤½¤â¤½¤â¡¢¡ÖPG_VERSION¡×¥Õ¥¡¥¤¥ë¤¬²¿¸Î¤Ê¤¤¤Î¤«¤È¤¤¤¦Íýͳ¤ò¹Í¤¨¤ë¤È¡Ä¡¢¤½¤¦¤«¤¡¡Ä¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤¬²õ¤ì¤¿¤Î¤Ç¥Õ¥¡¥¤¥ë¤¬¿§¡¹¤È¾Ã¤¨¤¿¤ó¤À¤Ã¤±¡¢¤È¤¤¤¦¤³¤È¤òº£¤µ¤é¤Ê¤¬¤é»×¤¤½Ð¤¹¡£

¡ÖPG_VERSION¡×¥Õ¥¡¥¤¥ë¤¬¾Ã¤¨¤Æ¤¤¤¿¤Î¤Ï¡¢¤½¤ó¤Ê¶²¤í¤·¤¤Íýͳ¡Ä¡£

¤Ä¤Þ¤ê¡¢¸í¤Ã¤Æ¼êư¤Ç¡ÖPG_VERSION¡×¥Õ¥¡¥¤¥ë¤À¤±¤òºï½ü¤·¤¿¤Î¤Ç¤â¤Ê¤¤¸Â¤ê¡¢º£²ó¤Î¤è¤¦¤Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ë¤Ï¤Ê¤«¤Ê¤«Áø¶ø¤·¤Ê¤¤¤Î¤«¤â¤Ê¤¡¡£

Linux¤Î¥³¥ó¥½¡¼¥ë¤Ê¤É¤ÇPostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºï½ü¤¹¤ë¤¿¤á¤Ë¡Ödropdb¡×¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿ºÝ¡¢ºï½ü¤·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºï½ü¤Ç¤­¤Ê¤¤¡Êºï½ü¤Ë¼ºÇÔ¤¹¤ë¡Ë¾ì¹ç¤¬¤¢¤ë¡£

°Ê²¼¤Ï¡¢dropdb¥³¥Þ¥ó¥É¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¡Önobuneko¡×¤òºï½ü¤·¤è¤¦¤È¤·¤¿»þ¤Ëºï½ü¤Ç¤­¤Ê¤«¤Ã¤¿Îã¡£

dropdb -U postgres nobuneko
dropdb: database removal failed: ERROR:  database "nobuneko" is being accessed by other users

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¡¢Â¾¤Î¥æ¡¼¥¶¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¡Önobuneko¡×¤Ë¥¢¥¯¥»¥¹Ãæ¤Ç¤¢¤ë¤¿¤á¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îºï½ü¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡¢¤È¤¤¤¦°ÕÌ£¤À¡£

¤³¤Î¥¨¥é¡¼¤¬½Ð¤¿¾ì¹ç¡¢²¿¤é¤«¤Î¼êÃʤÇ狼¤¬ºï½ü¤·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤¿¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

CSE¤Ê¤É¤ÇÀܳ¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢Àܳ¤òÀÚÃǤ¹¤ë¤È¥¨¥é¡¼¤¬½Ð¤Ê¤¯¤Ê¤ê¡¢ºï½ü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£¤É¤¦¤·¤Æ¤âÀܳ¤¬ÀÚ¤ì¤Ê¤¤¾ì¹ç¡Ê¤Ä¤Þ¤ê¡¢²¿¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤Æ¤¤¤ë¤«¤Î¸¶°ø¤Ê¤É¤¬Ê¬¤«¤é¤Ê¤¤¾ì¹ç¡Ë¡¢PostgreSQL¤ò¤¤¤Ã¤¿¤óÄä»ß¤¹¤ì¤Ð¡¢³Î¼Â¤ËÀܳ¤ÏÀÚ¤ì¤ë¡£

¡Ô»²¹Í¡Õ
/etc/rc.d/init.d/postgresql stop¡¡¢¨PostgreSQL¤ÎÄä»ß
/etc/rc.d/init.d/postgresql start¡¡¢¨PostgreSQL¤Îµ¯Æ°

ºï½ü¤·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤¬¤¤¤Ê¤¯¤Ê¤ì¤Ð¡¢dropdb¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤â¡Ödropdb: database removal failed: ERROR¡×¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤Ê¤¯¤Ê¤ê¡¢ºï½ü¤·¤¿¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºï½ü¤Ç¤­¤ë¡£

vacuumdb¤ò¼Â¹Ô¤¹¤ë¤È¡¢·ÇÂê¤Î¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£

¡ÔÎã¡Õ
/usr/bin/vacuumdb -U postgres -a -f -z
vacuumdb: vacuuming database "postgres"
NOTICE:  number of page slots needed (20208) exceeds max_fsm_pages (20000)
HINT:  Consider increasing the configuration parameter "max_fsm_pages" to a value over 20208.

¤³¤Î¥¨¥é¡¼¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¥í¥°¥Õ¥¡¥¤¥ë¤Ë¤âµ­Ï¿¤µ¤ì¤Æ¤¤¤¿¡£
/var/lib/pgsql/data/pg_log/postgresql-Fri.log

¤³¤Î¥¨¥é¡¼¤Ë¤Ï¥Ò¥ó¥È¤âÉÕ¤¤¤Æ¤ª¤ê¡¢¡Ömax_fsm_pages¤ÎÀßÄêÃͤò20208°Ê¾å¤ËÁý¤ä¤¹¤³¤È¤ò¸¡Æ¤¤¹¤ë¤³¤È¤ò¸¡Æ¤¤·¤Æ¤¯¤À¤µ¤¤¡×¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¡¢¤½¤ÎÄ̤ê¤Ë¤·¤Æ¤ß¤ë¡£

vi /var/lib/pgsql/data/postgresql.conf
----------------------------------------------------------------------------------
#max_fsm_pages = 20000                  # min max_fsm_relations*16, 6 bytes each
¢­
max_fsm_pages = 20208
----------------------------------------------------------------------------------

¢¨/var/lib/pgsql/data/postgresql.conf¤òÊÔ½¸¤·¤Æmax_fsm_pages¤ÎÃͤò¥Ç¥Õ¥©¥ë¥È¡Ê½é´üÃ͡ˤÎ20000¤«¤é20208¤ËÊѹ¹¤¹¤ë¡£

PostgreSQL¤Î¥µ¡¼¥Ó¥¹¤òºÆµ¯Æ°¤¹¤ë¤ÈÀßÄ꤬ȿ±Ç¤µ¤ì¤ë¡£
/etc/rc.d/init.d/postgresql restart¡¡¢¨PostgreSQL¤ÎºÆµ¯Æ°¥³¥Þ¥ó¥É

¤³¤ì¤Ç¡¢ÌäÂê¤Ê¤¯vacuumdb¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£
¢¨º£¸å¤Î¤³¤È¤ò¹Í¤¨¤ë¤È¡¢20208¤È¤¤¤¦¥®¥ê¥®¥ê¤ÎÃͤǤϤʤ¯¡¢40000¤Ê¤É;͵¤ò»ý¤¿¤»¤¿Å¬Åö¤ÊÃͤˤ·¤Æ¤ª¤¯¤È¤è¤µ¤½¤¦¡£

¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤Çpsql¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿»þ¤Ë¡¢

'psql' ¤Ï¡¢ÆâÉô¥³¥Þ¥ó¥É¤Þ¤¿¤Ï³°Éô¥³¥Þ¥ó¥É¡¢Áàºî²Äǽ¤Ê¥×¥í¥°¥é¥à¤Þ¤¿¤Ï¥Ð¥Ã¥Á ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÇ§¼±¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

¤È¤¤¤¦¥¨¥é¡¼¤ËÁø¶ø¤¹¤ë»þ¤¬¤¢¤ë¡£

°Ê²¼¤Ï¡¢¥æ¡¼¥¶¡Ör_nobu¡×¤ÇWindows XP¤Ë¥í¥°¥¤¥ó¤·¡¢[¥¹¥¿¡¼¥È]¢ª[¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Æ¼Â¹Ô]¢ª¡Öcmd¡×¤ÈÆþÎϤ·¡¢[OK]¤ò¥¯¥ê¥Ã¥¯¤·¤Æµ¯Æ°¤·¤¿¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È²èÌ̤Çpsql¤ò¼Â¹Ô¤·¤¿Îã¡£

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\r_nobu>psql -U postgres
'psql' ¤Ï¡¢ÆâÉô¥³¥Þ¥ó¥É¤Þ¤¿¤Ï³°Éô¥³¥Þ¥ó¥É¡¢
Áàºî²Äǽ¤Ê¥×¥í¥°¥é¥à¤Þ¤¿¤Ï¥Ð¥Ã¥Á ¥Õ¥¡¥¤¥ë¤È¤·¤ÆÇ§¼±¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£

¤³¤Î¾ì¹ç¡¢PostgreSQL¤Î¥³¥Þ¥ó¥É¡Öpsql¡×¤Î¡ÖPATH¡Ê¥Ñ¥¹¡Ë¡×¤¬Ä̤äƤ¤¤Ê¤¤¤³¤È¤¬¸¶°ø¡£

¾åµ­¤ÎÎã¤Î¾ì¹ç¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¸½ºß¤Î¥Õ¥©¥ë¥À¤¬¡ÖC:\Documents and Settings\r_nobu¡×¤È¤¤¤¦¾ì½ê¤Ê¤Î¤À¤¬¡¢¤³¤Î¡Ör_nobu¡×¤È¤¤¤¦¥Õ¥©¥ë¥ÀÆâ¤Ë¤Ï¡Öpsql¡×¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤Ê¤É¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤¡£

¡ÖPATH¡Ê¥Ñ¥¹¡Ë¡×¤òÄ̤·¤Æ¤¤¤ì¤Ð¡¢¤³¤Î¤è¤¦¤Ê»öÂ֤Ϥʤ¤¤Î¤À¤±¤ì¤É¡¢²¿¤é¤«¤Î»ö¾ð¤ÇÄ̤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð»ÅÊý¤¬¤Ê¤¤¡£¡ÖPATH¡Ê¥Ñ¥¹¡Ë¡×¤òÄ̤µ¤º¤Ë¤É¤¦¤·¤Æ¤âpsql¤ò»È¤¤¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢°Ê²¼¤Î¤è¤¦¤Ëpsql¤ò¼Â¹Ô¤Ç¤­¤ë¾ì½ê¡Ê¤Ä¤Þ¤ê¡¢PostgreSQL¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Îbin¥Õ¥©¥ë¥ÀÆâ¡Ë¤Þ¤Ç°Üư¤·¤Æ¤ä¤ì¤Ð¤è¤¤¡£

C:\Documents and Settings\r_nobu>cd "c:\Program Files\PostgreSQL\8.4\bin"

C:\Program Files\PostgreSQL\8.4\bin>psql -U postgres
psql (8.4.2)
"help" ¤Ç¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹.

postgres=# help¡¡¢¨PostgreSQL¤Îhelp¤òɽ¼¨¤¹¤ë¥³¥Þ¥ó¥É
¤³¤ì¤Ï psql : PostgreSQL ¤Ø¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¹¡£
\copyright ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢ÇÛÉÛ¾ò·ï¤òɽ¼¨¤·¤Þ¤¹¡£
\h ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢SQL ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\? ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢psql ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\g ¤ÈÂǤĤ«¥»¥ß¥³¥í¥ó¤ÇÊĤ¸¤ë¤È¡¢¥¯¥¨¥ê¡¼¤ò¼Â¹Ô¤·¤Þ¤¹¡£
\q ¤Ç½ªÎ»¤·¤Þ¤¹¡£

postgres=# select version();¡¡¢¨PostgreSQL¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ëSQL
                           version
-------------------------------------------------------------
 PostgreSQL 8.4.2, compiled by Visual C++ build 1400, 32-bit
(1 ¹Ô)

postgres=# select now();¡¡¢¨¸½ºßÆü»þ¤òɽ¼¨¤¹¤ëSQL
            now
---------------------------
 2010-11-11 02:02:21.14+09
(1 ¹Ô)

postgres=# \q¡¡¢¨PostgreSQL¤ò½ªÎ»¤¹¤ë¥³¥Þ¥ó¥É

¤Ê¤ª¡¢PostgreSQL¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Îbin¥Õ¥©¥ë¥ÀÆâ¡ÊWindowsÈÇPostgreSQL 8.4¤Îɸ½à¤Ç¤Ï¡Öc:\Program Files\PostgreSQL\8.4\bin¡×¡Ë¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤ò¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤Çį¤á¤ë¤È°Ê²¼¤ÎÄ̤ꡣ

C:\Program Files\PostgreSQL\8.4\bin>dir
 ¥É¥é¥¤¥Ö C ¤Î¥Ü¥ê¥å¡¼¥à ¥é¥Ù¥ë¤¬¤¢¤ê¤Þ¤»¤ó¡£
 ¥Ü¥ê¥å¡¼¥à ¥·¥ê¥¢¥ëÈÖ¹æ¤Ï F8E9-E3DB ¤Ç¤¹

 C:\Program Files\PostgreSQL\8.4\bin ¤Î¥Ç¥£¥ì¥¯¥È¥ê

2010/01/18  01:10    <DIR>          .
2010/01/18  01:10    <DIR>          ..
2009/12/10  20:30            81,920 clusterdb.exe
2009/04/13  21:23            12,288 comerr32.dll
2009/12/10  20:30            68,608 createdb.exe
2009/12/10  20:30            74,240 createlang.exe
2009/12/10  20:30            86,016 createuser.exe
2009/12/10  20:30            66,048 dropdb.exe
2009/12/10  20:30            90,112 droplang.exe
2009/12/10  20:30            65,536 dropuser.exe
2009/12/10  20:37           688,128 ecpg.exe
2009/04/13  21:23           135,168 gssapi32.dll
2006/05/04  05:57           888,832 iconv.dll
2009/12/10  20:28           106,496 initdb.exe
2009/04/13  21:23            19,968 k5sprt32.dll
2009/04/13  21:23           634,880 krb5_32.dll
2009/04/13  23:09         1,032,192 libeay32.dll
2009/01/06  23:51           968,886 libiconv-2.dll
2009/01/06  23:51            83,906 libintl-8.dll
2009/12/10  20:28           172,032 libpq.dll
2009/02/13  04:01           976,384 libxml2.dll
2008/09/15  05:10           166,400 libxslt.dll
2008/04/08  23:13           348,160 msvcr71.dll
2009/12/10  20:33            49,152 oid2name.exe
2009/12/10  20:48        11,173,888 pgAdmin3.exe
2009/12/10  20:33            73,728 pgbench.exe
2009/12/10  20:28            48,640 pg_config.exe
2009/12/10  20:28            47,104 pg_controldata.exe
2009/12/10  20:29            66,048 pg_ctl.exe
2009/12/10  20:29           299,008 pg_dump.exe
2009/12/10  20:29           163,840 pg_dumpall.exe
2009/12/10  20:37            86,016 pg_regress.exe
2009/12/10  20:37            86,016 pg_regress_ecpg.exe
2009/12/10  20:29            65,536 pg_resetxlog.exe
2009/12/10  20:30           147,456 pg_restore.exe
2009/12/10  20:34            40,960 pg_standby.exe
2009/12/10  20:27         4,521,984 postgres.exe
2009/12/10  20:29           352,256 psql.exe
2009/12/10  20:31            69,120 reindexdb.exe
2009/04/13  23:09           212,992 ssleay32.dll
2009/12/10  20:54         1,548,288 stackbuilder.exe
2009/12/10  20:30            52,224 vacuumdb.exe
2009/12/10  20:35            34,816 vacuumlo.exe
2009/12/10  20:35            90,112 zic.exe
2005/07/20  19:48            59,904 zlib1.dll
              43 ¸Ä¤Î¥Õ¥¡¥¤¥ë          26,055,288 ¥Ð¥¤¥È
               2 ¸Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê  18,290,790,400 ¥Ð¥¤¥È¤Î¶õ¤­Îΰè

PostgreSQL¤ÎPATH¡Ê¥Ñ¥¹¡Ë¤Ïµ¤¤¬¸þ¤¤¤¿¤éÄ̤¹¤«¤â¡£

PostgreSQL¤ÎPath¡Ê¥Ñ¥¹¡Ë¤¬Ä̤äƤ¤¤Ê¤¤¾ì¹ç¡¢Î㤨¤Ðpsql¤ò¼Â¹Ô¤¹¤ë¤Ë¤·¤Æ¤â¤¤¤Á¤¤¤ÁPostgreSQL¤Îbin¥Õ¥©¥ë¥À¡ÊWindows¤Î¾ì¹ç¡Ë¤Ë°Üư¤·¤Æ¤«¤é¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¡¢¤ä¤äÌÌÅÝ¡£

PostgreSQL¤ÎPath¤òÄ̤¹ÊýË¡¤Ï´Êñ¤Ç¡¢°Ê²¼¤Î¼ê½ç¤ÇÀßÄꤹ¤ë¡£

[¥¹¥¿¡¼¥È]¢ª[¥Þ¥¤ ¥³¥ó¥Ô¥å¡¼¥¿]¤ò±¦¥¯¥ê¥Ã¥¯¢ª[¥×¥í¥Ñ¥Æ¥£]¢ª[¾ÜºÙÀßÄê]¢ª[´Ä¶­ÊÑ¿ô]¤È¿Ê¤ß¡¢¡Ö¥·¥¹¥Æ¥à´Ä¶­ÊÑ¿ô¡×¤Î¡ÖPath¡×¤ò¥¯¥ê¥Ã¥¯¤·¤Æ[ÊÔ½¸]¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¡£
¡ÖÊÑ¿ôÃ͡פˡÖC:\Program Files\PostgreSQL\8.4\bin¡×¡ÊÎã¡§PostgreSQL 8.4¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¤¥ó¥¹¥È¡¼¥ëÀè¡Ë¤òÄɲ乤롣

OS¡ÊWindows £Ø£ÐÅù¡Ë¤òºÆµ¯Æ°¡£

OS¤ÎºÆµ¯Æ°¸å¤Ë£Ð£á£ô£è¤¬Ä̤äƤ¤¤ë¤«¤ò³Îǧ¡£

¤³¤ì¤Ç¡¢PostgreSQL¤ÎPath¤òÄ̤¹ºî¶È¤Ï½ªÎ»¤È¤Ê¤ë¡Ê´Êñ¤À¤Ã¤¿¡Ë¡£

PostgreSQL¤Ç¤Ï¡¢¡Ö_¡Ê¥¢¥ó¥À¡¼¥Ð¡¼¡¿¥¢¥ó¥À¡¼¥¹¥³¥¢¡Ë¡×¤òlike±é»»»Ò¤È¶¦¤ËÍѤ¤¤ë¤È¡¢¡ÖǤ°Õ¤Î°ìʸ»úÎó¡×¤òɽ¤¹¤È¤¤¤¦Àµµ¬É½¸½¤ÎÌò³ä¤ò²Ì¤¿¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ÉáÄ̤ˡÖ_¡×¤ò»ØÄꤷ¤¿¤À¤±¤À¤È¡¢¡Ö_¡×°Ê³°¤Îʸ»úÎó¤â¸¡º÷¤·¤Æ¤·¤Þ¤¦¡£
¤½¤³¤Ç¡¢like±é»»»Ò¤Ç¡Ö_¡×¤ò¸¡º÷¤·¤¿¤¤¾ì¹ç¤Ï¡¢¡Ö_¡×¤ÎÁ°¤Ë¡Ö\¡×¡ÊWindows¤À¤ÈȾ³Ñ¡ï¥Þ¡¼¥¯¡¢Linux¤À¤È¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¡Ë¤ò2¤ÄÉÕ¤±¤Æ¡Ö_¡×¤ò¥¨¥¹¥±¡¼¥×¤¹¤ì¤Ð¤è¤¤¡£

¤Ä¤Þ¤ê¡¢°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£
select * from ¥Æ¡¼¥Ö¥ë̾ where ¥«¥é¥à̾ like '%\\_%';

¡ÔÎã¡Õ
select * from nobuneko_table where nobuneko_column like '%\\_%';
¡Ê¥Æ¡¼¥Ö¥ë¡Önobuneko_table¡×¤Î¥«¥é¥à¡Önobuneko_column¡×¤Ë¡Ö_¡×¤ò´Þ¤à¥ì¥³¡¼¥É¤ò¸¡º÷¤¹¤ë¡£¡Ë

PostgreSQL¤ÇInsert¤ò¼Â¹Ô¤·¤¿»þ¤Ë¡¢

ERROR:  INSERT has more expressions than target columns

¤È¤¤¤Ã¤¿¥¨¥é¡¼¤¬½Ð¤ë¤³¤È¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢Insert¤ò¹Ô¤¦¤¿¤á¤ÎSQL¤Ë¸í¤ê¤¬¤¢¤ë²ÄǽÀ­¤¬¤¢¤ë¡£

¡Ô¥¨¥é¡¼½Ð¤ëSQL¤ÎÎã¡Õ
insert into nobuneko_table (
nobuneko_year,
nobuneko_title
) values (
2011,
'Ç­Âç¹¥¤­',
'²¹Àô¤â¹¥¤­¤Ç¤¹'
);

¾åµ­Îã¤Î¾ì¹ç¡¢¡Önobuneko_year¡×¤È¡Önobuneko_title¡×¤È¤¤¤¦¹ç·×2¤Ä¤Î¥«¥é¥à¤ËÂФ·¤ÆValue¤È¤·¤Æ¥»¥Ã¥È¤·¤¿¹àÌܤοô¤¬¥«¥é¥à¤Î¿ô¤è¤ê¤â¿¤¤3¤Ä¤È¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¤Ë¥¨¥é¡¼¤È¤Ê¤Ã¤Æ¤¤¤ë¡£

¤³¤Î¥¨¥é¡¼¤ò²ò·è¤¹¤ë¤Ë¤Ï¡¢¥«¥é¥à¤Î¿ô¤È¡¢¤½¤Î¥«¥é¥à¤Ë³ÊǼ¤¹¤ëValueÃͤ½¤ì¤¾¤ì¤Î¿ô¤ò°ìÃפµ¤»¤ì¤Ð¤è¤¤¡£

¡Ô¥¨¥é¡¼¤Î½Ð¤Ê¤¤SQL¤ÎÎã¡Õ
insert into nobuneko_table (
nobuneko_year,
nobuneko_title,
nobuneko_comment
) values (
2011,
'Ç­Âç¹¥¤­',
'²¹Àô¤â¹¥¤­¤Ç¤¹'
);

SolarisÅù¤Çinitdb¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¤È¡¢¡Öinitdb: cannot be run as root¡×¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢initdb¤ò¼Â¹Ô¤Ç¤­¤Ê¤¤¤³¤È¤¬¤¢¤ë¡£

-bash-3.00# /usr/local/postgresql8/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/postgresql8/data
initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÆÉ¤à¤È¡¢initdb¤Ïroot¥æ¡¼¥¶¤Ç¼Â¹Ô¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤³¤È¤¬Ê¬¤«¤ë¡£

¤³¤Î¥¨¥é¡¼¤ò²ò·è¤¹¤ë¤Ë¤Ï¡¢root¥æ¡¼¥¶°Ê³°¤Çinitdb¤ò¼Â¹Ô¤·¤Æ¤ä¤ì¤Ð¤è¤¤¡£

¤¿¤È¤¨¤Ð¡¢su - postgres¤Çpostgres¥æ¡¼¥¶¤Ë¤Ê¤Ã¤Æ¤«¤é¡¢initdb¤ò¼Â¹Ô¤¹¤ì¤Ð¤è¤¤¡£

-bash-3.00# su - postgres
$ /usr/local/postgresql8/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/postgresql8/data

Solaris¤Î¥³¥ó¥½¡¼¥ë²èÌÌÅù¤Ç¡Öcreatedb -U postgres -E EUC_JP ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡×¤È¥³¥Þ¥ó¥É¤ò᤭¡¢PostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òEUC_JP¤ÇºîÀ®¤·¤è¤¦¤È¤¹¤ë¤È¡¢¥µ¡¼¥Ð¤Î¥í¥±¡¼¥ë¡ÊUTF-8¡Ë¤È°ìÃפ·¤Ê¤¤¡¢¤È¤¤¤Ã¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¡¢ºîÀ®¤Ë¼ºÇÔ¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£

$ createdb -U postgres -E EUC_JP nobuneko
ERROR:  encoding EUC_JP does not match server's locale ja_JP.UTF-8
DETAIL:  The server's LC_CTYPE setting requires encoding UTF8.
STATEMENT:  CREATE DATABASE nobuneko ENCODING 'EUC_JP';
       
createdb: ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ERROR:  encoding EUC_JP does not match server's locale ja_JP.UTF-8
DETAIL:  The server's LC_CTYPE setting requires encoding UTF8.

¤É¤¦¤ä¤é¡¢initdb¤ò¼Â¹Ô¤¹¤ë»þ¤Î¥³¥Þ¥ó¥É¤¬°­¤«¤Ã¤¿¤è¤¦¤À¡£

¡ÔEUC_JP¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®¤Ë¼ºÇÔ¤·¤¿»þ¤Îinitdb¤Î¥³¥Þ¥ó¥É¡Õ
/usr/local/postgresql8/bin/initdb -D /usr/local/postgresql8/data

¡ÔEUC_JP¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®¤ËÀ®¸ù¤·¤¿»þ¤Îinitdb¤Î¥³¥Þ¥ó¥É¡Õ
/usr/local/postgresql8/bin/initdb --encoding=EUC_JP --no-locale -D /usr/local/postgresql8/data

¤³¤Î¤è¤¦¤Ë¡Ö--encoding=EUC_JP¡×¤È¡Ö--no-locale¡×¤È¤¤¤Ã¤¿¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Æinitdb¤ò¤ä¤êľ¤»¤Ð²ò·è¤·¤¿¡£

postgres¥æ¡¼¥¶°Ê³°¤Î¥æ¡¼¥¶¤Ëcreatedb¤ò¼Â¹Ô¤µ¤»¤è¤¦¤È¤·¤¿¾ì¹ç¡¢role¡Ê¥í¡¼¥ë¡Ë¤ÎÀßÄê¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¤¤È¥¨¥é¡¼¤Ë¤Ê¤ê¡¢createdb¤Ë¼ºÇÔ¤¹¤ë¡£À®¸ù¤µ¤»¤ë¤Ë¤Ï¡¢role¡Ê¥í¡¼¥ë¡Ë¤ÎÀßÄê¤ò¹Ô¤¨¤Ð¤è¤¤¡£

¡ÔÎã¡Õ
# /usr/local/postgresql8/bin/createdb -U nobuneko -E EUC_JP neko_database
FATAL:  role "nobuneko" does not exist
createdb: could not connect to database postgres: FATAL:  role "nobuneko" does not exist

postgres¥æ¡¼¥¶¤Çpsql¤ò»ÈÍѤ·¡¢role¡Ê¥í¡¼¥ë¡Ë¤ÎÀßÄê¾õ¶·¤ò³Îǧ¤¹¤ë¤³¤È¤Ë¤¹¤ë¡£

# /usr/local/postgresql8/bin/psql -U postgres
Welcome to psql 8.3.14, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# select rolname from pg_roles;             
 rolname 
----------
 postgres
(1 row)

¸½ºß¡¢role¡Ê¥í¡¼¥ë¡Ë¤¬Â¸ºß¤¹¤ë¤Î¤Ïpostgres¤Î¤ß¤Ç¤¢¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤¿¤Î¤Ç¡¢¿·¤·¤¯¥í¡¼¥ë¤òºîÀ®¤¹¤ë¤³¤È¤Ë¤¹¤ë¡£

postgres=# create role nobuneko;
CREATE ROLE

createdb¤ò¼Â¹Ô¡£¡Ä¤·¤«¤·¡¢¤³¤ì¤Ç¤Ï¼ºÇÔ¤¹¤ë¡£

# /usr/local/postgresql8/bin/createdb -U nobuneko -E EUC_JP neko_database
FATAL:  role "nobuneko" is not permitted to log in
createdb: could not connect to database postgres: FATAL:  role "nobuneko" is not permitted to log in

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬ÊѤï¤Ã¤¿¡£
¡Örole "nobuneko" is not permitted to log in¡×¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤è¤ê¡¢role¡Önobuneko¡×¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¥í¥°¥¤¥ó¤¹¤ë¤³¤È¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¤Ë¡¢createdb¤¬»ÈÍѤǤ­¤Ê¤¤¤³¤È¤¬Ê¬¤«¤ë¡£
¤½¤³¤Ç¡¢role¡Önobuneko¡×¤Ë¥í¥°¥¤¥ó¤Î¸¢¸Â¤òÍ¿¤¨¤ë¤³¤È¤Ë¤¹¤ë¡£

postgres=# alter role nobuneko login;
ALTER ROLE

createdb¤ò¼Â¹Ô¡£¡Ä¤·¤«¤·¡¢¤³¤ì¤Ç¤Ï¼ºÇÔ¤¹¤ë¡£

# /usr/local/postgresql8/bin/createdb -U nobuneko -E EUC_JP neko_database
ERROR:  permission denied to create database
STATEMENT:  CREATE DATABASE neko_database ENCODING 'EUC_JP';
       
createdb: database creation failed: ERROR:  permission denied to create database

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬ÊѤï¤Ã¤¿¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¥í¥°¥¤¥ó¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤¬¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹ºîÀ®¤Î¸¢¸Â¤¬¤Ê¤¤¤«¤écreatedb¤Ë¼ºÇÔ¤¹¤ë¤è¤¦¤À¡£
¤½¤³¤Ç¡¢role¡Önobuneko¡×¤Ëcreatedb¤Î¸¢¸Â¤òÍ¿¤¨¤ë¤³¤È¤Ë¤¹¤ë¡£

postgres=# alter role nobuneko createdb;
ALTER ROLE

createdb¤ò¼Â¹Ô¡£

# /usr/local/postgresql8/bin/createdb -U nobuneko -E EUC_JP neko_database
# /usr/local/postgresql8/bin/psql -U postgres
Welcome to psql 8.3.14, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# \l
          List of databases
     Name      |  Owner   | Encoding
---------------+----------+----------
 neko_database | nobuneko | EUC_JP
 postgres      | postgres | EUC_JP
 template0     | postgres | EUC_JP
 template1     | postgres | EUC_JP
(4 rows)

postgres=#

¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷¤ò¸«¤ë¤È¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¿·¤·¤¯ºîÀ®¤¹¤ë¤³¤È¤ËÀ®¸ù¤·¤¿¤³¤È¤¬Ê¬¤«¤ë¡£

postgres¥æ¡¼¥¶°Ê³°¤Î¥æ¡¼¥¶¤Ëcreatedb¤ò¼Â¹Ô¤µ¤»¤ë¤Ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â°Ê²¼¤Îºî¶È¤¬É¬Íפˤʤë¤È¤¤¤¦¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£

(1)¥í¡¼¥ë¤òºîÀ®¤¹¤ë
postgres=# create role nobuneko;
CREATE ROLE

(2)¥í¡¼¥ë¤Ë¥í¥°¥¤¥ó¸¢¸Â¤òÉÕÍ¿¤¹¤ë
postgres=# alter role nobuneko login;
ALTER ROLE

(3)¥í¡¼¥ë¤Ëcreatedb¤Î¸¢¸Â¤òÉÕÍ¿¤¹¤ë
postgres=# alter role nobuneko createdb;
ALTER ROLE

»ä¼«¿È¤Ç¤ÏÁ´¤¯»×¤¤¤Ä¤«¤Ê¤«¤Ã¤¿¤¬¡¢²¼µ­¤Î¥µ¥¤¥È¤ËÎɤµ¤½¤¦¤ÊÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤¿¡£

Modify OWNER on all tables simultaneously in Postgresql
http://stackoverflow.com/questions/1348126/modify-owner-on-all-tables-simultaneously-in-postgresql

Since you're changing the owner ship for all tables, you likely want views and sequences too. Here's what I did:

Tables:
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" YOUR_DB` ; do  psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done

Sequences:
for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" YOUR_DB` ; do  psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done

Views:
for tbl in `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" YOUR_DB` ; do  psql -c "alter table $tbl owner to NEW_OWNER" YOUR_DB ; done You could probably DRY that up a bit since the alter statements are identical for all three.

answered Apr 21 '10 at 20:05
Alex Soto

¾åµ­¤ÎÊýË¡¤Ç¤¦¤Þ¤¯¤Ç¤­¤ë¤«¤É¤¦¤«³Îǧ¤¹¤ë¤¿¤á¤Ë¡¢»ä¼«¿È¤ÇLinux¡ÜPostgreSQL8.3¤Î´Ä¶­¤Ç»î¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤¿¡£

¢¨¾åµ­¤Î¥³¥Þ¥ó¥É¤Î¤¦¤Á¡¢°Ê²¼¤ÎÉôʬ¤òÊѹ¹¤·¤¿¡£
NEW_OWNER¡¡¢ª¡¡nobuneko¡¡¢¨¥ª¡¼¥Ê¡¼¡Êowner¡Ë̾
YOUR_DB¡¡¢ª¡¡nobuneko_database¡¡¢¨¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾
psql¡¡¢ª¡¡/usr/local/postgresql8/bin/psql¡¡¢¨»î¤·¤¿Linux´Ä¶­¤Ç¤Ïpsql¤Î¥Ñ¥¹¡Êpath¡Ë¤¬Ä̤äƤ¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤Î´Ä¶­¤Ç¤Îpsql¤Î¥Õ¥ë¥Ñ¥¹¤ò»ØÄꤷ¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤·¤¿¡£

¥Æ¡¼¥Ö¥ë¡§
for tbl in `/usr/local/postgresql8/bin/psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" nobuneko_database` ; do  /usr/local/postgresql8/bin/psql -c "alter table $tbl owner to nobuneko" nobuneko_database ; done

¥·¡¼¥±¥ó¥¹¡§
for tbl in `/usr/local/postgresql8/bin/psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" nobuneko_database` ; do  /usr/local/postgresql8/bin/psql -c "alter table $tbl owner to nobuneko" nobuneko_database ; done

¥Ó¥å¡¼¡§
for tbl in `/usr/local/postgresql8/bin/psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" nobuneko_database` ; do  /usr/local/postgresql8/bin/psql -c "alter table $tbl owner to nobuneko" nobuneko_database ; done

¾åµ­¤Î³Æ¥³¥Þ¥ó¥É¤ò¡¢Linux¥³¥ó¥½¡¼¥ë¤ËÄ¥¤êÉÕ¤±¤Æ[Enter]¥­¡¼¤Ç1¤Ä¤º¤Ä¼Â¹Ô¤·¤¿¤È¤³¤í¡¢3¤Ä¤È¤âÀ®¸ù¤·¤¿¡£
ÂçÊÑÊØÍø¤Ê¥³¥Þ¥ó¥É¤À¤È»×¤Ã¤¿¡£

Alex Soto»á¤Ë´¶¼Õ¡£

PostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ç¡¢insert½èÍý¤ò¹Ô¤ª¤¦¤È¤·¤¿»þ¤Ë¡¢¼ç¥­¡¼¡Ê¥×¥é¥¤¥Þ¥ê¥­¡¼¡Ë¤ÎÃͤ¬°ì°Õ¤È¤Ê¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¾åµ­¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£

¡ÔÎã¡Õ°Ê²¼¤ÎSQL¤ò¼Â¹Ô¤·¤¿¾ì¹ç
INSERT INTO nobuneko_table (nobu_id, neko_id) VALUES (1, 105);
INSERT INTO nobuneko_table (nobu_id, neko_id) VALUES (1, 200);

¢¨nobuneko_table¡§¥Æ¡¼¥Ö¥ë̾¡¢nobu_id¡§¼ç¥­¡¼¡Ê¥×¥é¥¤¥Þ¥ê¡¼¥­¡¼¡Ë

¾åµ­SQL¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£
ERROR:  duplicate key violates unique constraint "nobuneko_table_pkey"

¼ç¥­¡¼¡Ê¥×¥é¥¤¥Þ¥ê¡¼¥­¡¼¡Ë¤¬°ì°Õ¤È¤Ê¤ë¤è¤¦¤Ë¡Ê½ÅÊ£¤·¤Ê¤¤¤è¤¦¤Ë¡ËSQLʸ¤ò¸«Ä¾¤¹¤³¤È¤Ç¾åµ­¤Î¥¨¥é¡¼¤Ï²óÈò¤Ç¤­¤ë¡£

¼ç¥­¡¼¡Ê¥×¥é¥¤¥Þ¥ê¡¼¥­¡¼¡Ë¤ò¥·¡¼¥±¥ó¥¹ÃÍÅù¤Ç¥·¥¹¥Æ¥à¤Ë¤è¤ê¼«Æ°¼èÆÀ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¼«Æ°¼èÆÀ¤·¤¿Ãͤ¬´û¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ëÃͤȽÅÊ£¤·¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤ò³Îǧ¤·¤Æ½¤Àµ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¡£¥Ç¡¼¥¿¥Ù¡¼¥¹¥Æ¡¼¥Ö¥ë¤Ç´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥ì¥³¡¼¥É¤Î¼ç¥­¡¼¤ÎºÇÂçÃͤè¤ê¤â¥·¡¼¥±¥ó¥¹Ãͤ¬¾®¤µ¤¤Ãͤξì¹ç¡¢¥ì¥³¡¼¥É¤òÄɲ䷤Ƥ¤¤¯¤Ë¤Ä¤ì¤Æ¥·¡¼¥±¥ó¥¹Ãͤ¬¾å¾º¤·¡¢¤ä¤¬¤Æ¼ç¥­¡¼¤ÈƱ¤¸Ãͤò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¡¢¾åµ­¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¾ì¹ç¤â¤¢¤ë¤À¤í¤¦¡£
¥·¡¼¥±¥ó¥¹ÃͤÎÃͤò¸½ºß¤Î¼ç¥­¡¼¤ÎºÇÂçÃͤËÀßÄꤹ¤ë¾ì¹ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊSQL¤ò¼Â¹Ô¤¹¤ë¤ÈÎɤ¤¡£

select setval('¥·¡¼¥±¥ó¥¹Ì¾',(select max(¼ç¥­¡¼) from ¥Æ¡¼¥Ö¥ë̾));
¢­
select setval('nobuneko_table_nobu_id_seq',(select max(nobu_id) from nobuneko_table));

psql¤ÇPostgreSQL¤ËÀܳ¸å¡¢

\?

¤ÈÆþÎϤ·¤Æ[Enter]¥­¡¼¤ò²¡¤¹¤È¡¢PostgreSQL¤Î¥Ø¥ë¥×¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¤Ç¥Ø¥ë¥×¤òɽ¼¨¤¹¤ëÊýË¡¤Èɽ¼¨·ë²Ì

[root@nobuneko ~]# psql -U postgres nobuneko_datanase
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_datanase=# \?
General
  \c[onnect] [DBNAME|- [USER]]
                 connect to new database (currently "nobuneko_datanase")
  \cd [DIR]      change the current working directory
  \copyright     show PostgreSQL usage and distribution terms
  \encoding [ENCODING]
                 show or set client encoding
  \h [NAME]      help on syntax of SQL commands, * for all commands
  \q             quit psql
  \set [NAME [VALUE]]
                 set internal variable, or list all if no parameters
  \timing        toggle timing of commands (currently off)
  \unset NAME    unset (delete) internal variable
  \! [COMMAND]   execute command in shell or start interactive shell

Query Buffer
  \e [FILE]      edit the query buffer (or file) with external editor
  \g [FILE]      send query buffer to server (and results to file or |pipe)
  \p             show the contents of the query buffer
  \r             reset (clear) the query buffer
  \s [FILE]      display history or save it to file
  \w FILE        write query buffer to file

Input/Output
  \echo [STRING] write string to standard output
  \i FILE        execute commands from file
  \o [FILE]      send all query results to file or |pipe
  \qecho [STRING]
                 write string to query output stream (see \o)

Informational
  \d [NAME]      describe table, index, sequence, or view
  \d{t|i|s|v|S} [PATTERN] (add "+" for more detail)
                 list tables/indexes/sequences/views/system tables
  \da [PATTERN]  list aggregate functions
  \db [PATTERN]  list tablespaces (add "+" for more detail)
  \dc [PATTERN]  list conversions
  \dC            list casts
  \dd [PATTERN]  show comment for object
  \dD [PATTERN]  list domains
  \df [PATTERN]  list functions (add "+" for more detail)
  \dg [PATTERN]  list groups
  \dn [PATTERN]  list schemas (add "+" for more detail)
  \do [NAME]     list operators
  \dl            list large objects, same as \lo_list
  \dp [PATTERN]  list table, view, and sequence access privileges
  \dT [PATTERN]  list data types (add "+" for more detail)
  \du [PATTERN]  list users
  \l             list all databases (add "+" for more detail)
  \z [PATTERN]   list table, view, and sequence access privileges (same as \dp)

Formatting
  \a             toggle between unaligned and aligned output mode
  \C [STRING]    set table title, or unset if none
  \f [STRING]    show or set field separator for unaligned query output
  \H             toggle HTML output mode (currently off)
  \pset NAME [VALUE]
                 set table output option
                 (NAME := {format|border|expanded|fieldsep|footer|null|
                 numericlocale|recordsep|tuples_only|title|tableattr|pager})
  \t             show only rows (currently off)
  \T [STRING]    set HTML <table> tag attributes, or unset if none
  \x             toggle expanded output (currently off)

Copy, Large Object
  \copy ...      perform SQL COPY with data stream to the client host
  \lo_export LOBOID FILE
  \lo_import FILE [COMMENT]
  \lo_list
  \lo_unlink LOBOID    large object operations

psql¤Ç¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤¿¸å¡¢Ê̤Υǡ¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ËÀÚ¤êÂØ¤¨¤¿¤¤¾ì¹ç¤¬¤¢¤ë¡£
¸½ºß¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ø¤ÎÀܳ¤ò¡Ö\q¡×¥³¥Þ¥ó¥É¤ÇÀÚÃǸ塢¡¢ºÆÅÙpsql¤ÇÊ̤Υǡ¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤¹¤ë¡¢¤È¤¤¤Ã¤¿ÊýË¡¤â¤¢¤ë¤¬¡¢psql¤Ç¤ÎÀÚÃÇ¡¢Àܳ¤ä¤êľ¤·¡¢¤È¤¤¤Ã¤¿Î®¤ì¤¬¾¯¤·¤À¤±ÌÌÅݤ«¤â¤·¤ì¤Ê¤¤¡£

¾¯¤·¤Ç¤â¼ê´Ö¤ò¾Ê¤¯¤Ë¤Ï¡¢¡Ö\c¡×¥³¥Þ¥ó¥É¤ÇÀܳÀè¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊѹ¹¤¹¤ì¤Ð¤è¤¤¡£

\c ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾ ¥æ¡¼¥¶Ì¾

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢ÀܳÀè¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¥æ¡¼¥¶Ì¾¤òÊѹ¹¤Ç¤­¤ë¡£

¥æ¡¼¥¶Ì¾¤Î»ØÄ꤬ÉÔÍפǤ¢¤ë¾ì¹ç¤Ï¡¢¥æ¡¼¥¶Ì¾¤ò»ØÄꤻ¤º¡¢

\c ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾

¤ÈÆþÎϤ·¤Æ¤â¤è¤¤¡£

¡ÔÈ÷¹Í¡ÕPostgreSQL8.1¤Î¥Ø¥ë¥×¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó
  \c[onnect] [DBNAME|- [USER]]
                 connect to new database (currently "nobuneko_datanase")
¢¨¤³¤Î¥Ø¥ë¥×¤Ï¡¢»ÈÍÑÊýË¡¤À¤±¤Ç¤Ê¤¯¡¢¡Öcurrently "¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾"¡×¤ÎÉôʬ¤Ç¡¢¸½ºß¤ÎÀܳÀè¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¤Þ¤Ç³Îǧ¤Ç¤­¤ë¤Î¤Çʬ¤«¤ê¤ä¤¹¤¤¡£

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¡ÜPostgreSQL 8.1¤ÇÀܳÀè¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊѹ¹¤¹¤ëÊýË¡
[root@nobuneko ~]# psql -U postgres nobuneko_database
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_database=# \l
                List of databases
           Name            |  Owner   | Encoding
---------------------------+----------+----------
 cat_database              | postgres | EUC_JP
 neko_database             | postgres | EUC_JP
 nobuneko_database         | postgres | EUC_JP
 postgres                  | postgres | UTF8
 template0                 | postgres | UTF8
 template1                 | postgres | UTF8
(6 rows)

¡Ö\c ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡×¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀܳÀè¤ò¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊѹ¹¤¹¤ëÎã
¡Ô¸ºß¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡Õ
nobuneko_database=# \c neko_database¡¡¢¨Â¸ºß¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¡Öneko_database¡×¤ò»ØÄê
You are now connected to database "neko_database".¡¡¢¨¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¡Øneko_database¡Ù¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¡×¡¢¤È¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë¡£

¡Ô¸ºß¤·¤Ê¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡Õ
nobuneko_database=# \c test_database¡¡¢¨Â¸ºß¤·¤Ê¤¤¥Ç¡¼¥¿¥Ù¡¼¥¹¡Ötest_database¡×¤ò»ØÄê
FATAL:  database "test_database" does not exist¡¡¢¨¥Ç¡¼¥¿¥Ù¡¼¥¹¡Ötest_database¡×¤Ï¸ºß¤·¤Ê¤¤¤È·Ù¹ð¤¬½Ð¤ë
Previous connection kept¡¡¢¨¡Ö¤³¤ì¤Þ¤Ç¤ÎÀܳ¤¬°Ý»ý¤µ¤ì¤ë¡×¤È·Ù¹ð¤¬½Ð¤ë

¡Ö\c ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾ ¥æ¡¼¥¶Ì¾¡×¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀܳÀè¤ò¾¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊѹ¹¤¹¤ëÎã
¡Ô¸ºß¤¹¤ë¥æ¡¼¥¶¤ò»ØÄꤷ¤¿¾ì¹ç¡Õ
neko_database=# \c cat_database postgres¡¡¢¨Â¸ºß¤¹¤ë¥æ¡¼¥¶¡Öpostgres¡×¤ò»ØÄê
You are now connected to database "cat_database" as user "postgres".¡¡¢¨¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¡Øcat_database¡Ù¤Ë¡¢¡Øpostgres¡Ù¥æ¡¼¥¶¤È¤·¤ÆÀܳ¤µ¤ì¤Æ¤¤¤ë¡×¡¢¤È¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë¡£

¡Ô¸ºß¤·¤Ê¤¤¥æ¡¼¥¶¤ò»ØÄꤷ¤¿¾ì¹ç¡Õ
neko_database=# \c cat_database testuser¡¡¢¨Â¸ºß¤·¤Ê¤¤¥æ¡¼¥¶¡Ötestuser¡×¤ò»ØÄê
FATAL:  role "testuser" does not exist¡¡¢¨¥æ¡¼¥¶¡Ötestuser¡×¤Ï¸ºß¤·¤Ê¤¤¤È·Ù¹ð¤¬½Ð¤ë
Previous connection kept¡¡¢¨¡Ö¤³¤ì¤Þ¤Ç¤ÎÀܳ¤¬°Ý»ý¤µ¤ì¤ë¡×¤È·Ù¹ð¤¬½Ð¤ë

psql¤Ç¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤¿¸å¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¡Ê¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¿ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¡Ë¤òÊѹ¹¤·¤¿¤¤¾ì¹ç¤¬¤¢¤ë¡£
¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ï¡¢

\cd ¥Ç¥£¥ì¥¯¥È¥ê̾

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤Ç¤­¤ë¡£

¡ÔÈ÷¹Í¡ÕPostgreSQL8.1¤Î¥Ø¥ë¥×¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó
  \cd [DIR]      change the current working directory

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¡ÜPostgreSQL 8.1¤Ç¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤¹¤ëÊýË¡
[root@nobuneko ~]# psql -U postgres nobuneko_database
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_database=# \cd /home/nobuneko¡¡¢¨/home/nobuneko¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤¹¤ë¾ì¹ç¤ÎÎã

PostgreSQL¤Ç¤Î¡Ö\copyright¡×¥³¥Þ¥ó¥É¤Ë¤è¤ëÃøºî¸¢É½¼¨¤ÎÊýË¡

psql¤Ç¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤¿¸å¡¢

\copyright

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢Ãøºî¸¢¡Ê¥³¥Ô¡¼¥é¥¤¥È¡Ë¤òɽ¼¨¤Ç¤­¤ë¡£

¡ÔÈ÷¹Í¡ÕPostgreSQL8.1¤Î¥Ø¥ë¥×¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó
  \copyright     show PostgreSQL usage and distribution terms

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¡ÜPostgreSQL 8.1¤ÇÃøºî¸¢¡Ê¥³¥Ô¡¼¥é¥¤¥È¡Ë¤òɽ¼¨¤¹¤ëÊýË¡
[root@nobuneko ~]# psql -U postgres nobuneko_database
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_database=# \copyright
PostgreSQL Data Base Management System

Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group

This software is based on Postgres95, formerly known as Postgres, which
contains the following notice:

Portions Copyright(c) 1994, 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.

Linux¥³¥ó¥½¡¼¥ë¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬UTF-8¤Ç¡¢PostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬EUC_JP¤Î¾ì¹ç¡¢¤½¤Î¤Þ¤Þ²¿¤âÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤Ê¤¯psqlÀܳ¤ò¤·¤Æselect¤Ç¥Æ¡¼¥Ö¥ëÆâ¤ÎÆüËܸìʸ»úÎó¤òɽ¼¨¤µ¤»¤è¤¦¤È¤¹¤ë¤È¡¢Ê¸»ú²½¤±¤·¤Æ¤·¤Þ¤¦¡£Linux¥³¥ó¥½¡¼¥ë¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÈPostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îʸ»ú¥³¡¼¥É¤¬°Û¤Ê¤ë¤Èʸ»ú²½¤±¤·¤Æ¤·¤Þ¤¦¤Î¤À¡£

Linux¥³¥ó¥½¡¼¥ë¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÈPostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îʸ»ú¥³¡¼¥É¤¬°Û¤Ê¤ë¾ì¹ç¤Ç¤â¡¢Linux¥³¥ó¥½¡¼¥ë¤ÇÆüËܸìʸ»úÎó¤òʸ»ú²½¤±¤Ê¤¯É½¼¨¤µ¤»¤ëÊýË¡¤Î1¤Ä¤¬¡¢psql¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¡¢É½¼¨¤¹¤ëʸ»ú¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÊѹ¹¤·¡¢Linux¥³¥ó¥½¡¼¥ë¤Îʸ»ú¥³¡¼¥É¤ÈƱ°ì¤Ë¤¹¤ë¤³¤È¤À¡£

psql¤Ç¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤¿¸å¡¢

\encoding ʸ»ú¥³¡¼¥É

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢»ØÄꤷ¤¿Ê¸»ú¥³¡¼¥É¤Ëʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¤Þ¤¿¡¢Ê¸»ú¥³¡¼¥É¤ò»ØÄꤻ¤º¡¢

\encoding

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢¸½ºß¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò³Îǧ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£

¡ÔÈ÷¹Í¡ÕPostgreSQL8.1¤Î¥Ø¥ë¥×¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó
  \encoding [ENCODING]
                 show or set client encoding

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¡ÜPostgreSQL 8.1¤Ç¤Î¸½ºß¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î³Îǧ¤ÈÊѹ¹ÊýË¡
[root@nobuneko ~]# psql -U postgres nobuneko_database
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_database=# \encoding
EUC_JP¡¡¢¨¸½ºß¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬EUC_JP¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤ë¡£
nobuneko_database=# \encoding UTF8¡¡¢¨¸½ºß¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òUTF-8¤ËÊѹ¹¤¹¤ë¡£
nobuneko_database=# \encoding
UTF8¡¡¢¨¸½ºß¤Îʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬UTF-8¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤ë¡£

¢¨¼Â¹Ô¤·¤¿¥³¥Þ¥ó¥É¤Ï¡Ö\encoding UTF8¡×¤È¤·¤¿¤¬¡¢¡Ö\encoding UTF-8¡×¤È¤·¤Æ¤âƱ¤¸·ë²Ì¤À¤Ã¤¿¡£
¥­¡¼¥Ü¡¼¥É¤Ç¡ÖUTF¡×¤Þ¤ÇÆþÎϤ·¡¢¥­¡¼¥Ü¡¼¥É¤ÎTab¥­¡¼¤ò²¡¤¹¤È¡¢¡ÖUTF8¡×¤ÈÆþÎÏÊä´°¤µ¤ì¤¿¤Î¤Ç¡¢PostgreSQLŪ¤Ë¤Ï¡¢¡ÖUTF-8¡×¤Ç¤Ï¤Ê¤¯¡ÖUTF8¡×¤¬Àµ¼°¤Ê¤Î¤À¤í¤¦¡£

psql¤Ç»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤ò³Îǧ¤·¤¿¤¤»þ¤¬¤¢¤ë¡£

¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢psql¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¸å¡¢

\h

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤³¤È¤Ç¡¢»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É°ìÍ÷¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤ÎÁ´¤Æ¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤·¤¿¤¤¾ì¹ç¤Ï¡¢

\h *

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤È¡¢»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤ÎÁ´¤Æ¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤Ç¤­¤ë¡£

»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤Î¤¦¤Á»ØÄꤷ¤¿SQL¥³¥Þ¥ó¥É¤Î¤ß¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤·¤¿¤¤¾ì¹ç¤Ï¡¢

\h SQL¥³¥Þ¥ó¥É̾

¤ÈÆþÎϤ·¡¢[Enter]¥­¡¼¤ò²¡¤¹¤È¡¢»ØÄꤷ¤¿SQL¥³¥Þ¥ó¥É¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤Ç¤­¤ë¡£

¡ÔÈ÷¹Í¡ÕPostgreSQL8.1¤Î¥Ø¥ë¥×¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¾ðÊó
  \h [NAME]      help on syntax of SQL commands, * for all commands

¡ÔÎã¡ÕLinux¡ÊCentOS 5¡Ë¡ÜPostgreSQL 8.1¤Ç»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É°ìÍ÷¤Îɽ¼¨¤È»ÈÍÑÊýË¡¤Î³ÎǧÊýË¡
[root@nobuneko ~]# psql -U postgres nobuneko_database
Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

nobuneko_database=# \h¡¡¢¨»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤ÎÁ´¤Æ¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤¹¤ë
Available help:
  ABORT                     CREATE LANGUAGE           DROP VIEW                
  ALTER AGGREGATE           CREATE OPERATOR CLASS     END                      
  ALTER CONVERSION          CREATE OPERATOR           EXECUTE                  
  ALTER DATABASE            CREATE ROLE               EXPLAIN                  
  ALTER DOMAIN              CREATE RULE               FETCH                    
  ALTER FUNCTION            CREATE SCHEMA             GRANT                    
  ALTER GROUP               CREATE SEQUENCE           INSERT                   
  ALTER INDEX               CREATE TABLE              LISTEN                   
  ALTER LANGUAGE            CREATE TABLE AS           LOAD                     
  ALTER OPERATOR CLASS      CREATE TABLESPACE         LOCK                     
  ALTER OPERATOR            CREATE TRIGGER            MOVE                     
  ALTER ROLE                CREATE TYPE               NOTIFY                   
  ALTER SCHEMA              CREATE USER               PREPARE                  
  ALTER SEQUENCE            CREATE VIEW               PREPARE TRANSACTION      
  ALTER TABLE               DEALLOCATE                REINDEX                  
  ALTER TABLESPACE          DECLARE                   RELEASE SAVEPOINT        
  ALTER TRIGGER             DELETE                    RESET                    
  ALTER TYPE                DROP AGGREGATE            REVOKE                   
  ALTER USER                DROP CAST                 ROLLBACK                 
  ANALYZE                   DROP CONVERSION           ROLLBACK PREPARED        
  BEGIN                     DROP DATABASE             ROLLBACK TO SAVEPOINT    
  CHECKPOINT                DROP DOMAIN               SAVEPOINT                
  CLOSE                     DROP FUNCTION             SELECT                   
  CLUSTER                   DROP GROUP                SELECT INTO              
  COMMENT                   DROP INDEX                SET                      
  COMMIT                    DROP LANGUAGE             SET CONSTRAINTS          
  COMMIT PREPARED           DROP OPERATOR CLASS       SET ROLE                 
  COPY                      DROP OPERATOR             SET SESSION AUTHORIZATION
  CREATE AGGREGATE          DROP ROLE                 SET TRANSACTION          
  CREATE CAST               DROP RULE                 SHOW                     
  CREATE CONSTRAINT TRIGGER DROP SCHEMA               START TRANSACTION        
  CREATE CONVERSION         DROP SEQUENCE             TRUNCATE                 
  CREATE DATABASE           DROP TABLE                UNLISTEN                 
  CREATE DOMAIN             DROP TABLESPACE           UPDATE                   
  CREATE FUNCTION           DROP TRIGGER              VACUUM                   
  CREATE GROUP              DROP TYPE                
  CREATE INDEX              DROP USER                

nobuneko_database=# \h *¡¡¢¨»ÈÍѲÄǽ¤ÊSQL¥³¥Þ¥ó¥É¤ÎÁ´¤Æ¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤¹¤ë
Command:     ABORT
Description: abort the current transaction
Syntax:
ABORT [ WORK | TRANSACTION ]

Command:     ALTER AGGREGATE
Description: change the definition of an aggregate function
Syntax:
ALTER AGGREGATE name ( type ) RENAME TO new_name
ALTER AGGREGATE name ( type ) OWNER TO new_owner
ALTER AGGREGATE name ( type ) SET SCHEMA new_schema

Command:     ALTER CONVERSION
Description: change the definition of a conversion
Syntax:
ALTER CONVERSION name RENAME TO newname
ALTER CONVERSION name OWNER TO newowner

Command:     ALTER DATABASE
Description: change a database
Syntax:
ALTER DATABASE name [ [ WITH ] option [ ... ] ]

where option can be:

    CONNECTION LIMIT connlimit

ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name RESET parameter

ALTER DATABASE name RENAME TO newname

ALTER DATABASE name OWNER TO new_owner

Command:     ALTER DOMAIN
Description: change the definition of a domain
Syntax:
ALTER DOMAIN name
    { SET DEFAULT expression | DROP DEFAULT }
ALTER DOMAIN name
    { SET | DROP } NOT NULL
ALTER DOMAIN name
    ADD domain_constraint
ALTER DOMAIN name
    DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
ALTER DOMAIN name
    OWNER TO new_owner
ALTER DOMAIN name
    SET SCHEMA new_schema

Command:     ALTER FUNCTION
Description: change the definition of a function
Syntax:
ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    action [, ... ] [ RESTRICT ]
ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    RENAME TO new_name
ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    OWNER TO new_owner
ALTER FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    SET SCHEMA new_schema

where action is one of:

    CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    IMMUTABLE | STABLE | VOLATILE
    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER

Command:     ALTER GROUP
Description: change role name or membership
Syntax:
ALTER GROUP groupname ADD USER username [, ... ]
ALTER GROUP groupname DROP USER username [, ... ]

ALTER GROUP groupname RENAME TO newname

Command:     ALTER INDEX
Description: change the definition of an index
Syntax:
ALTER INDEX name RENAME TO new_name
ALTER INDEX name SET TABLESPACE tablespace_name

Command:     ALTER LANGUAGE
Description: change the definition of a procedural language
Syntax:
ALTER LANGUAGE name RENAME TO newname

Command:     ALTER OPERATOR CLASS
Description: change the definition of an operator class
Syntax:
ALTER OPERATOR CLASS name USING index_method RENAME TO newname
ALTER OPERATOR CLASS name USING index_method OWNER TO newowner

Command:     ALTER OPERATOR
Description: change the definition of an operator
Syntax:
ALTER OPERATOR name ( { lefttype | NONE } , { righttype | NONE } ) OWNER TO newowner

Command:     ALTER ROLE
Description: change a database role
Syntax:
ALTER ROLE name [ [ WITH ] option [ ... ] ]

where option can be:
   
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'

ALTER ROLE name RENAME TO newname

ALTER ROLE name SET parameter { TO | = } { value | DEFAULT }
ALTER ROLE name RESET parameter

Command:     ALTER SCHEMA
Description: change the definition of a schema
Syntax:
ALTER SCHEMA name RENAME TO newname
ALTER SCHEMA name OWNER TO newowner

Command:     ALTER SEQUENCE
Description: change the definition of a sequence generator
Syntax:
ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
ALTER SEQUENCE name SET SCHEMA new_schema

Command:     ALTER TABLE
Description: change the definition of a table
Syntax:
ALTER TABLE [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column TO new_column
ALTER TABLE name
    RENAME TO new_name
ALTER TABLE name
    SET SCHEMA new_schema

where action is one of:

    ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
    DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
    ALTER [ COLUMN ] column TYPE type [ USING expression ]
    ALTER [ COLUMN ] column SET DEFAULT expression
    ALTER [ COLUMN ] column DROP DEFAULT
    ALTER [ COLUMN ] column { SET | DROP } NOT NULL
    ALTER [ COLUMN ] column SET STATISTICS integer
    ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
    ADD table_constraint
    DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
    DISABLE TRIGGER [ trigger_name | ALL | USER ]
    ENABLE TRIGGER [ trigger_name | ALL | USER ]
    CLUSTER ON index_name
    SET WITHOUT CLUSTER
    SET WITHOUT OIDS
    OWNER TO new_owner
    SET TABLESPACE new_tablespace

Command:     ALTER TABLESPACE
Description: change the definition of a tablespace
Syntax:
ALTER TABLESPACE name RENAME TO newname
ALTER TABLESPACE name OWNER TO newowner

Command:     ALTER TRIGGER
Description: change the definition of a trigger
Syntax:
ALTER TRIGGER name ON table RENAME TO newname

Command:     ALTER TYPE
Description: change the definition of a type
Syntax:
ALTER TYPE name OWNER TO new_owner
ALTER TYPE name SET SCHEMA new_schema

Command:     ALTER USER
Description: change a database role
Syntax:
ALTER USER name [ [ WITH ] option [ ... ] ]

where option can be:
   
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'

ALTER USER name RENAME TO newname

ALTER USER name SET parameter { TO | = } { value | DEFAULT }
ALTER USER name RESET parameter

Command:     ANALYZE
Description: collect statistics about a database
Syntax:
ANALYZE [ VERBOSE ] [ table [ (column [, ...] ) ] ]

Command:     BEGIN
Description: start a transaction block
Syntax:
BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]

where transaction_mode is one of:

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY

Command:     CHECKPOINT
Description: force a transaction log checkpoint
Syntax:
CHECKPOINT

Command:     CLOSE
Description: close a cursor
Syntax:
CLOSE name

Command:     CLUSTER
Description: cluster a table according to an index
Syntax:
CLUSTER indexname ON tablename
CLUSTER tablename
CLUSTER

Command:     COMMENT
Description: define or change the comment of an object
Syntax:
COMMENT ON
{
  TABLE object_name |
  COLUMN table_name.column_name |
  AGGREGATE agg_name (agg_type) |
  CAST (sourcetype AS targettype) |
  CONSTRAINT constraint_name ON table_name |
  CONVERSION object_name |
  DATABASE object_name |
  DOMAIN object_name |
  FUNCTION func_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
  INDEX object_name |
  LARGE OBJECT large_object_oid |
  OPERATOR op (leftoperand_type, rightoperand_type) |
  OPERATOR CLASS object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  RULE rule_name ON table_name |
  SCHEMA object_name |
  SEQUENCE object_name |
  TRIGGER trigger_name ON table_name |
  TYPE object_name |
  VIEW object_name
} IS 'text'

Command:     COMMIT
Description: commit the current transaction
Syntax:
COMMIT [ WORK | TRANSACTION ]

Command:     COMMIT PREPARED
Description: commit a transaction that was earlier prepared for two-phase commit
Syntax:
COMMIT PREPARED transaction_id

Command:     COPY
Description: copy data between a file and a table
Syntax:
COPY tablename [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ [ WITH ]
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ]
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE NOT NULL column [, ...] ]

COPY tablename [ ( column [, ...] ) ]
    TO { 'filename' | STDOUT }
    [ [ WITH ]
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ]
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE QUOTE column [, ...] ]

Command:     CREATE AGGREGATE
Description: define a new aggregate function
Syntax:
CREATE AGGREGATE name (
    BASETYPE = input_data_type,
    SFUNC = sfunc,
    STYPE = state_data_type
    [ , FINALFUNC = ffunc ]
    [ , INITCOND = initial_condition ]
    [ , SORTOP = sort_operator ]
)

Command:     CREATE CAST
Description: define a new cast
Syntax:
CREATE CAST (sourcetype AS targettype)
    WITH FUNCTION funcname (argtypes)
    [ AS ASSIGNMENT | AS IMPLICIT ]

CREATE CAST (sourcetype AS targettype)
    WITHOUT FUNCTION
    [ AS ASSIGNMENT | AS IMPLICIT ]

Command:     CREATE CONSTRAINT TRIGGER
Description: define a new constraint trigger
Syntax:
CREATE CONSTRAINT TRIGGER name
    AFTER events ON
    tablename constraint attributes
    FOR EACH ROW EXECUTE PROCEDURE funcname ( args )

Command:     CREATE CONVERSION
Description: define a new encoding conversion
Syntax:
CREATE [DEFAULT] CONVERSION name
    FOR source_encoding TO dest_encoding FROM funcname

Command:     CREATE DATABASE
Description: create a new database
Syntax:
CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] dbowner ]
           [ TEMPLATE [=] template ]
           [ ENCODING [=] encoding ]
           [ TABLESPACE [=] tablespace ]
           [ CONNECTION LIMIT [=] connlimit ] ]

Command:     CREATE DOMAIN
Description: define a new domain
Syntax:
CREATE DOMAIN name [AS] data_type
    [ DEFAULT expression ]
    [ constraint [ ... ] ]

where constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }

Command:     CREATE FUNCTION
Description: define a new function
Syntax:
CREATE [ OR REPLACE ] FUNCTION
    name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    [ RETURNS rettype ]
  { LANGUAGE langname
    | IMMUTABLE | STABLE | VOLATILE
    | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
    | AS 'definition'
    | AS 'obj_file', 'link_symbol'
  } ...
    [ WITH ( attribute [, ...] ) ]

Command:     CREATE GROUP
Description: define a new database role
Syntax:
CREATE GROUP name [ [ WITH ] option [ ... ] ]

where option can be:
   
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE rolename [, ...]
    | IN GROUP rolename [, ...]
    | ROLE rolename [, ...]
    | ADMIN rolename [, ...]
    | USER rolename [, ...]
    | SYSID uid

Command:     CREATE INDEX
Description: define a new index
Syntax:
CREATE [ UNIQUE ] INDEX name ON table [ USING method ]
    ( { column | ( expression ) } [ opclass ] [, ...] )
    [ TABLESPACE tablespace ]
    [ WHERE predicate ]

Command:     CREATE LANGUAGE
Description: define a new procedural language
Syntax:
CREATE [ PROCEDURAL ] LANGUAGE name
CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    HANDLER call_handler [ VALIDATOR valfunction ]

Command:     CREATE OPERATOR CLASS
Description: define a new operator class
Syntax:
CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type USING index_method AS
  {  OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ]
   | FUNCTION support_number funcname ( argument_type [, ...] )
   | STORAGE storage_type
  } [, ... ]

Command:     CREATE OPERATOR
Description: define a new operator
Syntax:
CREATE OPERATOR name (
    PROCEDURE = funcname
    [, LEFTARG = lefttype ] [, RIGHTARG = righttype ]
    [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
    [, RESTRICT = res_proc ] [, JOIN = join_proc ]
    [, HASHES ] [, MERGES ]
    [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ]
    [, LTCMP = less_than_op ] [, GTCMP = greater_than_op ]
)

Command:     CREATE ROLE
Description: define a new database role
Syntax:
CREATE ROLE name [ [ WITH ] option [ ... ] ]

where option can be:
   
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE rolename [, ...]
    | IN GROUP rolename [, ...]
    | ROLE rolename [, ...]
    | ADMIN rolename [, ...]
    | USER rolename [, ...]
    | SYSID uid

Command:     CREATE RULE
Description: define a new rewrite rule
Syntax:
CREATE [ OR REPLACE ] RULE name AS ON event
    TO table [ WHERE condition ]
    DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }

Command:     CREATE SCHEMA
Description: define a new schema
Syntax:
CREATE SCHEMA schemaname [ AUTHORIZATION username ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION username [ schema_element [ ... ] ]

Command:     CREATE SEQUENCE
Description: define a new sequence generator
Syntax:
CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]

Command:     CREATE TABLE
Description: define a new table
Syntax:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( [
  { column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] }
    [, ... ]
] )
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]

where column_constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL |
  NULL |
  UNIQUE [ USING INDEX TABLESPACE tablespace ] |
  PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
  CHECK (expression) |
  REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
    [ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

and table_constraint is:

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
  PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
  CHECK ( expression ) |
  FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

Command:     CREATE TABLE AS
Description: define a new table from the results of a query
Syntax:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
    [ (column_name [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
    AS query

Command:     CREATE TABLESPACE
Description: define a new tablespace
Syntax:
CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'

Command:     CREATE TRIGGER
Description: define a new trigger
Syntax:
CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
    ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
    EXECUTE PROCEDURE funcname ( arguments )

Command:     CREATE TYPE
Description: define a new data type
Syntax:
CREATE TYPE name AS
    ( attribute_name data_type [, ... ] )

CREATE TYPE name (
    INPUT = input_function,
    OUTPUT = output_function
    [ , RECEIVE = receive_function ]
    [ , SEND = send_function ]
    [ , ANALYZE = analyze_function ]
    [ , INTERNALLENGTH = { internallength | VARIABLE } ]
    [ , PASSEDBYVALUE ]
    [ , ALIGNMENT = alignment ]
    [ , STORAGE = storage ]
    [ , DEFAULT = default ]
    [ , ELEMENT = element ]
    [ , DELIMITER = delimiter ]
)

Command:     CREATE USER
Description: define a new database role
Syntax:
CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:
   
      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'timestamp'
    | IN ROLE rolename [, ...]
    | IN GROUP rolename [, ...]
    | ROLE rolename [, ...]
    | ADMIN rolename [, ...]
    | USER rolename [, ...]
    | SYSID uid

Command:     CREATE VIEW
Description: define a new view
Syntax:
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ ( column_name [, ...] ) ]
    AS query

Command:     DEALLOCATE
Description: deallocate a prepared statement
Syntax:
DEALLOCATE [ PREPARE ] plan_name

Command:     DECLARE
Description: define a cursor
Syntax:
DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
    CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
    [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]

Command:     DELETE
Description: delete rows of a table
Syntax:
DELETE FROM [ ONLY ] table
    [ USING usinglist ]
    [ WHERE condition ]

Command:     DROP AGGREGATE
Description: remove an aggregate function
Syntax:
DROP AGGREGATE name ( type ) [ CASCADE | RESTRICT ]

Command:     DROP CAST
Description: remove a cast
Syntax:
DROP CAST (sourcetype AS targettype) [ CASCADE | RESTRICT ]

Command:     DROP CONVERSION
Description: remove a conversion
Syntax:
DROP CONVERSION name [ CASCADE | RESTRICT ]

Command:     DROP DATABASE
Description: remove a database
Syntax:
DROP DATABASE name

Command:     DROP DOMAIN
Description: remove a domain
Syntax:
DROP DOMAIN name [, ...]  [ CASCADE | RESTRICT ]

Command:     DROP FUNCTION
Description: remove a function
Syntax:
DROP FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] )
    [ CASCADE | RESTRICT ]

Command:     DROP GROUP
Description: remove a database role
Syntax:
DROP GROUP name [, ...]

Command:     DROP INDEX
Description: remove an index
Syntax:
DROP INDEX name [, ...] [ CASCADE | RESTRICT ]

Command:     DROP LANGUAGE
Description: remove a procedural language
Syntax:
DROP [ PROCEDURAL ] LANGUAGE name [ CASCADE | RESTRICT ]

Command:     DROP OPERATOR CLASS
Description: remove an operator class
Syntax:
DROP OPERATOR CLASS name USING index_method [ CASCADE | RESTRICT ]

Command:     DROP OPERATOR
Description: remove an operator
Syntax:
DROP OPERATOR name ( { lefttype | NONE } , { righttype | NONE } ) [ CASCADE | RESTRICT ]

Command:     DROP ROLE
Description: remove a database role
Syntax:
DROP ROLE name [, ...]

Command:     DROP RULE
Description: remove a rewrite rule
Syntax:
DROP RULE name ON relation [ CASCADE | RESTRICT ]

Command:     DROP SCHEMA
Description: remove a schema
Syntax:
DROP SCHEMA name [, ...] [ CASCADE | RESTRICT ]

Command:     DROP SEQUENCE
Description: remove a sequence
Syntax:
DROP SEQUENCE name [, ...] [ CASCADE | RESTRICT ]

Command:     DROP TABLE
Description: remove a table
Syntax:
DROP TABLE name [, ...] [ CASCADE | RESTRICT ]

Command:     DROP TABLESPACE
Description: remove a tablespace
Syntax:
DROP TABLESPACE tablespacename

Command:     DROP TRIGGER
Description: remove a trigger
Syntax:
DROP TRIGGER name ON table [ CASCADE | RESTRICT ]

Command:     DROP TYPE
Description: remove a data type
Syntax:
DROP TYPE name [, ...] [ CASCADE | RESTRICT ]

Command:     DROP USER
Description: remove a database role
Syntax:
DROP USER name [, ...]

Command:     DROP VIEW
Description: remove a view
Syntax:
DROP VIEW name [, ...] [ CASCADE | RESTRICT ]

Command:     END
Description: commit the current transaction
Syntax:
END [ WORK | TRANSACTION ]

Command:     EXECUTE
Description: execute a prepared statement
Syntax:
EXECUTE plan_name [ (parameter [, ...] ) ]

Command:     EXPLAIN
Description: show the execution plan of a statement
Syntax:
EXPLAIN [ ANALYZE ] [ VERBOSE ] statement

Command:     FETCH
Description: retrieve rows from a query using a cursor
Syntax:
FETCH [ direction { FROM | IN } ] cursorname

where direction can be empty or one of:

    NEXT
    PRIOR
    FIRST
    LAST
    ABSOLUTE count
    RELATIVE count
    count
    ALL
    FORWARD
    FORWARD count
    FORWARD ALL
    BACKWARD
    BACKWARD count
    BACKWARD ALL

Command:     GRANT
Description: define access privileges
Syntax:
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] tablename [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE dbname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE langname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schemaname [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespacename [, ...]
    TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT role [, ...] TO username [, ...] [ WITH ADMIN OPTION ]

Command:     INSERT
Description: create new rows in a table
Syntax:
INSERT INTO table [ ( column [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }

Command:     LISTEN
Description: listen for a notification
Syntax:
LISTEN name

Command:     LOAD
Description: load or reload a shared library file
Syntax:
LOAD 'filename'

Command:     LOCK
Description: lock a table
Syntax:
LOCK [ TABLE ] name [, ...] [ IN lockmode MODE ] [ NOWAIT ]

where lockmode is one of:

    ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE
    | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE

Command:     MOVE
Description: position a cursor
Syntax:
MOVE [ direction { FROM | IN } ] cursorname

Command:     NOTIFY
Description: generate a notification
Syntax:
NOTIFY name

Command:     PREPARE
Description: prepare a statement for execution
Syntax:
PREPARE plan_name [ (datatype [, ...] ) ] AS statement

Command:     PREPARE TRANSACTION
Description: prepare the current transaction for two-phase commit
Syntax:
PREPARE TRANSACTION transaction_id

Command:     REINDEX
Description: rebuild indexes
Syntax:
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]

Command:     RELEASE SAVEPOINT
Description: destroy a previously defined savepoint
Syntax:
RELEASE [ SAVEPOINT ] savepoint_name

Command:     RESET
Description: restore the value of a run-time parameter to the default value
Syntax:
RESET name
RESET ALL

Command:     REVOKE
Description: remove access privileges
Syntax:
REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] tablename [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE dbname [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE langname [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schemaname [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
    { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespacename [, ...]
    FROM { username | GROUP groupname | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]

REVOKE [ ADMIN OPTION FOR ]
    role [, ...] FROM username [, ...]
    [ CASCADE | RESTRICT ]

Command:     ROLLBACK
Description: abort the current transaction
Syntax:
ROLLBACK [ WORK | TRANSACTION ]

Command:     ROLLBACK PREPARED
Description: cancel a transaction that was earlier prepared for two-phase commit
Syntax:
ROLLBACK PREPARED transaction_id

Command:     ROLLBACK TO SAVEPOINT
Description: roll back to a savepoint
Syntax:
ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name

Command:     SAVEPOINT
Description: define a new savepoint within the current transaction
Syntax:
SAVEPOINT savepoint_name

Command:     SELECT
Description: retrieve rows from a table or view
Syntax:
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    * | expression [ AS output_name ] [, ...]
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY expression [, ...] ]
    [ HAVING condition [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start ]
    [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] ]

where from_item can be one of:

    [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
    ( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
    function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]
    function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
    from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]

Command:     SELECT INTO
Description: define a new table from the results of a query
Syntax:
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    * | expression [ AS output_name ] [, ...]
    INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY expression [, ...] ]
    [ HAVING condition [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start ]
    [ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] ]

Command:     SET
Description: change a run-time parameter
Syntax:
SET [ SESSION | LOCAL ] name { TO | = } { value | 'value' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }

Command:     SET CONSTRAINTS
Description: set constraint checking modes for the current transaction
Syntax:
SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }

Command:     SET ROLE
Description: set the current user identifier of the current session
Syntax:
SET [ SESSION | LOCAL ] ROLE rolename
SET [ SESSION | LOCAL ] ROLE NONE
RESET ROLE

Command:     SET SESSION AUTHORIZATION
Description: set the session user identifier and the current user identifier of the current session
Syntax:
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
RESET SESSION AUTHORIZATION

Command:     SET TRANSACTION
Description: set the characteristics of the current transaction
Syntax:
SET TRANSACTION transaction_mode [, ...]
SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]

where transaction_mode is one of:

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY

Command:     SHOW
Description: show the value of a run-time parameter
Syntax:
SHOW name
SHOW ALL

Command:     START TRANSACTION
Description: start a transaction block
Syntax:
START TRANSACTION [ transaction_mode [, ...] ]

where transaction_mode is one of:

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY

Command:     TRUNCATE
Description: empty a table or set of tables
Syntax:
TRUNCATE [ TABLE ] name [, ...]

Command:     UNLISTEN
Description: stop listening for a notification
Syntax:
UNLISTEN { name | * }

Command:     UPDATE
Description: update rows of a table
Syntax:
UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
    [ FROM fromlist ]
    [ WHERE condition ]

Command:     VACUUM
Description: garbage-collect and optionally analyze a database
Syntax:
VACUUM [ FULL | FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL | FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]

nobuneko_database=#
nobuneko_database=# \h ABORT¡¡¢¨»ØÄꤷ¤¿SQL¥³¥Þ¥ó¥É¤Î¤ß¤Î»ÈÍÑÊýË¡¤ò³Îǧ¤·¤¿¤¤¾ì¹ç
Command:     ABORT
Description: abort the current transaction
Syntax:
ABORT [ WORK | TRANSACTION ]

PostgreSQL 8.4.7¤Î¥¤¥ó¥¹¥È¡¼¥ë¸å¡¢Áá®PostgreSQL¤òµ¯Æ°¤·¤è¤¦¤È¤¹¤ë¤È¡¢

/var/lib/pgsql/data is missing

¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤Æ¤·¤Þ¤¦¡£

/var/lib/pgsql/data¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢postgresql.conf¡¢pg_hba.conf¤Ê¤ÉPostgreSQL¤ÎÀßÄê¤ËɬÍפʽÅÍפʥե¡¥¤¥ë¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢/var/lib/pgsql/data¤¬Â¸ºß¤·¤Ê¤¤¤Î¤Ç¤¢¤ì¤ÐPostgreSQL¤¬µ¯Æ°¤Ç¤­¤Ê¤¤¡¢¤È¤¤¤¦Íýͳ¤ÏǼÆÀ¤Ç¤­¤ë¡£

¡ÔÎã¡Õ/var/lib/pgsql/data is missing¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤ë
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql status
postmaster ¤ÏÄä»ß¤·¤Æ¤¤¤Þ¤¹
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql start

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
                                                           [¼ºÇÔ]

¡Ö¥¯¥é¥¹¥¿¤ò½é´ü²½¤¹¤ë¤¿¤á¤Ë¡Øservice postgresql initdb¡Ù¤ò¼Â¹Ô¤·¤Æ¤¯¤µ¤À¤µ¤¤¡×¡¢¤È¤¤¤¦·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ËÁÇľ¤Ë½¾¤Ã¤Æinitdb¤ò¼Â¹Ô¤¹¤ë¤È¡¢Ìµ»ö¤ËPostgreSQL¥µ¡¼¥Ó¥¹¤òµ¯Æ°¤Ç¤­¤ë¡£

¡ÔÎã¡Õinitdb¤ò¼Â¹Ô¤¹¤ë
[root@nobuneko ~]# service postgresql initdb
¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò½é´ü²½Ãæ:                                    [  OK  ]
[root@nobuneko ~]#
[root@nobuneko ~]# /etc/rc.d/init.d/postgresql start
postgresql ¥µ¡¼¥Ó¥¹¤ò³«»ÏÃæ:                               [  OK  ]

¢¨initdb¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢/var/lib/pgsql/dataÇÛ²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¢¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¡£PostgreSQL¥¤¥ó¥¹¥È¡¼¥ëľ¸å¤Ë¡¢PostgreSQL¤òµ¯Æ°¤¹¤ëºÝ¤Ë¡Ö/var/lib/pgsql/data is missing¡×¤È¤¤¤¦¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤ë¾ì¹ç¤Ï¡¢¤³¤Î¤è¤¦¤Ëinitdb¤ò¼Â¹Ô¤·¤Æ¤¤¤Ê¤¤¤³¤È¤Ë¸¶°ø¤¬¤¢¤ë¤Î¤Ç¡¢initdb¤ò¼Â¹Ô¤¹¤ì¤Ð¤³¤ÎÌäÂê¤Ï²ò·è¤¹¤ë¡£

¡ÔÃí¡Õº£²óÎã¤Ëµó¤²¤¿PostgreSQL 8.4.7¤Ï¡¢CentOS 6.0¤Ç¡¢yum¤ÇPostgreSQL¤ò¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤â¤Î¡£

¤¢¤ë¥µ¡¼¥Ð¤«¤é¡¢Ê̤Υµ¡¼¥Ð¤ÎPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËpsqlÀܳ¤ò»î¤ß¤¿»þ¤Ë¡¢Àܳ¤Ë¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£

¡ÔÎã¡Õ¥µ¡¼¥ÐA¡Êneko¡¿192.168.2.3¡Ë¤«¤é¥µ¡¼¥ÐB¡Ênobuneko¡¿192.168.2.4¡Ë¤ÎPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËpsqlÀܳ¤ò»î¤ß¤¿¾ì¹ç

£±¡Ëpsql -U postgres -h 192.168.2.4¤ÇÀܳ¤Ç¤­¤Ê¤¤¤³¤È¤ò³Îǧ
[root@neko ~]# psql -U postgres -h 192.168.2.4
psql: could not connect to server: ¥Û¥¹¥È¤Ø¤Î·ÐÏ©¤¬¤¢¤ê¤Þ¤»¤ó
        Is the server running on host "192.168.2.4" and accepting
        TCP/IP connections on port 5432?

£²¡Ë/var/lib/pgsql/data/postgresql.conf¤Îlisten_addresses¤Ë*¡Ê¥¢¥¹¥¿¥ê¥¹¥¯¡Ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ
[root@nobuneko ~]# cd /var/lib/pgsql/data
[root@nobuneko data]# cat postgresql.conf | grep listen
listen_addresses = '*'          # what IP address(es) to listen on;
¢¨listen_addresses¤Ë*¡Ê¥¢¥¹¥¿¥ê¥¹¥¯¡Ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢IP¥¢¥É¥ì¥¹¤Ë¤è¤ëÀܳÀ©¸Â¤¬¤Ê¤¤¤³¤È¤ò³Îǧ¡£

£³¡Ë/var/lib/pgsql/data/pg_hba.conf¤Ç¤ÎÀßÄêÆâÍÆ¤ò³Îǧ¡£
[root@nobuneko data]# vi pg_hba.conf
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.2.0/24        trust
# IPv6 local connections:
host    all         all         ::1/128               ident

¢¨Àܳ¸µ¥µ¡¼¥Ð¤¬½ê°¤¹¤ë¥Í¥Ã¥È¥ï¡¼¥¯¡Ê¡Ö192.168.2.0/24¡×¡Ë¤ÎÀܳ¸µ¤¬µö²Ä¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¡£

£´¡ËSELinux¤¬Ìµ¸ú¡ÊDisabled¡Ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ
[root@nobuneko ~]# getenforce
Disabled

ǰ¤Î¤¿¤á¡¢SELinux¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤â³Îǧ¡£

[root@nobuneko ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Ä̾ï¤Ç¤¢¤ì¤Ð¡¢¾åµ­£±¡Ë¡Á£´¡Ë¤ÎÀßÄê¤Î¤É¤³¤«¤ËÌäÂ꤬¤¢¤ê¡¢¤½¤ì¤é¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤ÇÌäÂê¤Ï²ò·è¤¹¤ë¤Î¤À¤¬¡¢¾åµ­¤À¤±¤Ç¤Ï²ò·è¤·¤Ê¤¤¾ì¹ç¤Ï¡¢iptables¤ÎÀßÄê¤â³Îǧ¤¹¤ë¡£

£µ¡Ëiptables¤ÎÀßÄê¤ò³Îǧ
[root@nobuneko ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@nobuneko ~]# vi /etc/sysconfig/iptables

¢¨SSHÀܳ¤Ç»ÈÍѤ¹¤ëTCP 22È֥ݡ¼¥È¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤ë¤¬¡¢psqlÀܳ¤Ç»ÈÍѤ¹¤ëTCP 5432È֥ݡ¼¥È¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¡£

psqlÀܳ¤Ç»ÈÍѤ¹¤ëTCP 5432È֥ݡ¼¥È¤òµö²Ä¤¹¤ëÀßÄê

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

¤òÄɵ­¤¹¤ë¡£

[root@nobuneko ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

¢¨iptables¤òºÆµ¯Æ°¤·¡¢ÀßÄê¤òÈ¿±Ç¤µ¤»¤ë¡£
[root@nobuneko ~]# /etc/rc.d/init.d/iptables restart
iptables: ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¥ë¡¼¥ë¤ò¾ÃµîÃæ:                  [  OK  ]
iptables: ¥Á¥§¥¤¥ó¤ò¥Ý¥ê¥·¡¼ ACCEPT ¤ØÀßÄêÃæfilter         [  OK  ]
iptables: ¥â¥¸¥å¡¼¥ë¤ò¼è¤ê³°¤·Ãæ:                          [  OK  ]
iptables: ¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¥ë¡¼¥ë¤òŬÍÑÃæ:                  [  OK  ]

psqlÀܳ¤¬¤Ç¤­¤Ê¤¤¸¶°ø¤¬iptables¤ÎÀßÄê¤À¤Ã¤¿¾ì¹ç¤Ï¡¢psql¤¬»ÈÍѤ¹¤ë¥Ý¡¼¥ÈÈÖ¹æ¤òµö²Ä¤·¡¢iptables¤òºÆµ¯Æ°¤¹¤ì¤Ð²ò·è¤¹¤ë¡£

¡ÔÃí¡Õº£²óÎã¤Ëµó¤²¤¿PostgreSQL 8.4.7¤Ï¡¢CentOS 6.0¤Ç¡¢yum¤ÇPostgreSQL¤ò¥Ñ¥Ã¥±¡¼¥¸¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤â¤Î¡£

createdb¤ò¼Â¹Ô¤¹¤ë¤È¡¢

createdb: ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ERROR: É乿²½Êý¼° EUC_JP ¤¬¥í¥±¡¼¥ë ja_JP.UTF-8 ¤Ë¹ç¤¤¤Þ¤»¤ó

¤È¤¤¤Ã¤¿¥¨¥é¡¼¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ë¡£

¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤«¤é¸¶°ø¤¬¤Û¤Üʬ¤«¤ë¤¬¡¢Íפ¹¤ë¤Ë¡¢¥í¥±¡¼¥ë¤Îʸ»ú¥³¡¼¥É¤ÈºîÀ®¤¹¤ëDB¤Îʸ»ú¥³¡¼¥É¤¬°Û¤Ê¤ë¤¿¤á¤Ë¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤ë¤è¤¦¤À¡£

£±¡Ëcreatedb¼ºÇÔ»þ¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¡Êɸ½à½ÐÎϡˤò³Îǧ
[root@nobuneko ~]# createdb -U postgres -E EUC_JP nobuneko_database
createdb: ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ERROR:  É乿²½Êý¼° EUC_JP ¤¬¥í¥±¡¼¥ë ja_JP.UTF-8 ¤Ë¹ç¤¤¤Þ¤»¤ó
DETAIL:  ÁªÂò¤µ¤ì¤¿ LC_CTYPE ¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢É乿²½Êý¼° UTF8 ¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

£²¡Ëcreatedb¼ºÇÔ»þ¤Ëpg_logÇÛ²¼¤Ë½ÐÎϤµ¤ì¤ë¥¨¥é¡¼¥í¥°¤ò³Îǧ
[root@nobuneko pg_log]# cat /var/lib/pgsql/data/pg_log/postgresql-Thu.log
ERROR:  É乿²½Êý¼° EUC_JP ¤¬¥í¥±¡¼¥ë ja_JP.UTF-8 ¤Ë¹ç¤¤¤Þ¤»¤ó
¾ÜºÙ:  ÁªÂò¤µ¤ì¤¿ LC_CTYPE ¤òÀßÄꤹ¤ë¤Ë¤Ï¡¢É乿²½Êý¼° UTF8 ¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥¹¥Æ¡¼¥È¥á¥ó¥È:  CREATE DATABASE nobuneko_database ENCODING 'EUC_JP';

£³¡Ë¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷¤òɽ¼¨¤·¤ÆÊ¸»ú¥³¡¼¥É¤ò³Îǧ¤¹¤ë¡£
[root@nobuneko ~]# psql -U postgres
psql (8.4.7)
"help" ¤Ç¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹.

postgres=# \l
                                         ¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷
   ̾Á°    |  ½êÍ­¼Ô  | ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥° |  ¾È¹ç½ç½ø   | Ctype(ÊÑ´¹±é»»»Ò) |      ¥¢¥¯¥»¥¹¸¢
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres
                                                                           : postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres
                                                                           : postgres=CTc/postgres
(3 ¹Ô)

£´¡Ë¥í¥±¡¼¥ë¤È¥Æ¥ó¥×¥ì¡¼¥È¤ò»ØÄꤷ¤Æcreatedb¤ò¼Â¹Ô¤¹¤ë¡£

[root@nobuneko ~]# createdb -U postgres -E EUC_JP --locale=ja_JP.EUC_JP nobuneko_database --template=template0

£µ¡Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®¤ËÀ®¸ù¤·¤¿¾ì¹ç¡¢ºîÀ®¤·¤¿¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËpsqlÀܳ¤¬¤Ç¤­¤ë¤«¤ò³Îǧ¤¹¤ë¡£
[root@nobuneko ~]# psql -U postgres nobuneko_database
psql (8.4.7)
"help" ¤Ç¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹.

nobuneko_database=# \q

¢¨¾åµ­¤Î£´¡Ë¤Î·ë²Ì¡¢createdb¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢createdb¤¬¼ºÇÔ¤·¤¿¸¶°ø¤¬¡¢¥í¥±¡¼¥ë¤È¥Æ¥ó¥×¥ì¡¼¥È»ØÄê¤ÎÌäÂê¤Ç¤¢¤ë¡¢¤È¤¤¤¦¤³¤È¤¬Ê¬¤«¤ë¡£

¥³¥Þ¥ó¥É¥é¥¤¥ó¤Çpsql¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¾ì¹ç¡¢

psql -U postgres -c '¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¼Â¹Ô¤¹¤ëSQL'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë DB̾

¤È¤¹¤ë¡£

¤³¤Î¾ì¹ç¡¢¡Ö¼Â¹Ô¤¹¤ëSQL¡×¤ÎÃæ¤Ë¡Ö'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¡×¤¬Æþ¤Ã¤Æ¤¤¤ë»þ¤Ï¡¢¤É¤¦¤·¤¿¤è¤¤¤«¡£

Î㤨¤Ð¡¢¼Â¹Ô¤¹¤ëSQL¤ò¡Öcopy ¥Æ¡¼¥Ö¥ë̾ to '¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë½ÐÎÏÀè'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾¡×¤È¤·¤¿¾ì¹ç¡¢¡Ö½ÐÎÏÀè¡×¤ò°Ï¤à¡Ö'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¡×¤Ï¡¢¤½¤Î¤Þ¤Þ½ñ¤¤¤Æ¤è¤¤¤À¤í¤¦¤«¡£

¡Ô¥¨¥é¡¼¤Ë¤Ê¤ë¥³¥Þ¥ó¥ÉÎã¡Õ
psql -U postgres -c 'copy nobuneko_table1 to '/home/nobuneko/tmp/test1.txt'' nobuneko_database

ERROR:  syntax error at or near "/" at character 23
LINE 1: copy nobuneko_table1 to /home/nobuneko/tmp/test1.txt

¤½¤Î¤Þ¤Þ¡Ö'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¡×¤ò½ñ¤¯¤Î¤Ç¤Ï¡¢¥¨¥é¡¼¤Ë¤Ê¤ë¤è¤¦¤À¤Ã¤¿¡£

'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¤Î¥¨¥¹¥±¡¼¥×ʸ»ú¤Ê¤É¤¬¤¢¤ë¤Î¤À¤í¤¦¤«¡¢¤È¹Í¤¨¤Æ»î¤·¤¿¤¬¡¢¤¦¤Þ¤¯¤¤¤«¤º¡¢¤µ¤Æ¡¢¤É¤¦¤·¤è¤¦¤«¡¢¤È»×¤Ã¤ÆÅ¬Åö¤Ë»î¤·¤Æ¤¤¤¿¤é¡¢¤¢¤Ã¤µ¤ê¤È²ò·è¤·¤¿¡£

¡ÔÀ®¸ù¤¹¤ë¥³¥Þ¥ó¥ÉÎã¡Õ
psql -U postgres -c "copy nobuneko_table1 to '/home/nobuneko/tmp/test1.txt'" nobuneko_database

¡Ö¼Â¹Ô¤¹¤ëSQL¡×¤ò¡Ö'¡Ê¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¡×¤Ç¤Ï¤Ê¤¯¡¢¡Ö"¡Ê¥À¥Ö¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¡Ë¡×¤Ç°Ï¤á¤Ð¤è¤«¤Ã¤¿¤è¤¦¤À¡£

´Êñ¤Ê¤³¤È¤À¤Ã¤¿¤¬¡¢ÃΤé¤Ê¤¤¤È¡¢¤³¤ì¤À¤±Çº¤ó¤Ç¤·¤Þ¤¦¡Ä¡£

¢¨¾åµ­¤Ï¡¢PostgreSQL 8.1¤Ç»î¤·¤¿¾ì¹ç¤ÎÎã¡£

Linux¡¢SolarisÅù¤Î¥³¥ó¥½¡¼¥ë¤è¤êpsql¤ÇPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¸å¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë¤È¡¢

ERROR:  invalid byte sequence for encoding "EUC_JP": 0xe590

¤È¤¤¤Ã¤¿¥¨¥é¡¼¤Ë¤Ê¤ê¡¢¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤Ç¤­¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£

¡ÔÎã¡Õ
-bash-3.00# psql -U postgres
PostgreSQL ¤Î²ñÏ÷¿¥¿¡¼¥ß¥Ê¥ë¡¢psql 8.1.17 ¡Ê¥µ¡¼¥Ð 8.3.13¡Ë¤Ø¤è¤¦¤³¤½

\copyright ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢ÇÛÉÛ¾ò·ï¤òɽ¼¨¤·¤Þ¤¹¡£
\h ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢SQL ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\? ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢psql ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\g ¤ÈÂǤĤ«¥»¥ß¥³¥í¥ó¤ÇÊĤ¸¤ë¤È¡¢¥¯¥¨¥ê¡¼¤ò¼Â¹Ô¤·¤Þ¤¹¡£
\q ¤Ç½ªÎ»¤·¤Þ¤¹¡£

·Ù¹ð: ¸½ºßÀÜÂ³Ãæ¤Î¥µ¡¼¥Ð¤Ï¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó 8.3 ¤Ç¤¹¤¬¡¢»ÈÍÑÃæ¤Î
¥¯¥é¥¤¥¢¥ó¥È psql ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¤Ï 8.1 ¤Ç¤¹¡£\d ¤ò¤Ï¤¸¤á¤È¤¹¤ë
¤¤¤¯¤Ä¤«¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤ÏÀµ¾ï¤Ëưºî¤·¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
postgres=# \l
ERROR:  invalid byte sequence for encoding "EUC_JP": 0xe590
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
postgres=# \q

¥µ¡¼¥Ð¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÎÌäÂê¤Î¤è¤¦¤Ê¤Î¤Ç¡¢locale¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ³Îǧ¤¹¤ë¤È¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¡ÖEUC_JP¡×¤È¤Ï°Û¤Ê¤ë¡ÖUTF-8¡×¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£

¡ÔÎã¡Õ
-bash-3.00# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_ALL=

´Ä¶­ÊÑ¿ôLANG¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈƱ¤¸EUC_JP¤ËÀßÄꤷ¤Æ¤ß¤ë¡£

¡ÔÎã¡Õ
-bash-3.00# export LANG=ja_JP.eucJP

locale¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¡¢EUC_JP¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£

¡ÔÎã¡Õ
-bash-3.00# locale
LANG=ja_JP.eucJP
LC_CTYPE="ja_JP.eucJP"
LC_NUMERIC="ja_JP.eucJP"
LC_TIME="ja_JP.eucJP"
LC_COLLATE="ja_JP.eucJP"
LC_MONETARY="ja_JP.eucJP"
LC_MESSAGES="ja_JP.eucJP"
LC_ALL=

psql¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤ÆPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¡¢Àµ¾ï¤Ë¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤ò³Îǧ¤¹¤ë¡£

¡ÔÎã¡Õ
-bash-3.00# psql -U postgres
PostgreSQL ¤Î²ñÏ÷¿¥¿¡¼¥ß¥Ê¥ë¡¢psql 8.1.17 ¡Ê¥µ¡¼¥Ð 8.3.13¡Ë¤Ø¤è¤¦¤³¤½

\copyright ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢ÇÛÉÛ¾ò·ï¤òɽ¼¨¤·¤Þ¤¹¡£
\h ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢SQL ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\? ¤È¥¿¥¤¥×¤¹¤ë¤È¡¢psql ¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹¡£
\g ¤ÈÂǤĤ«¥»¥ß¥³¥í¥ó¤ÇÊĤ¸¤ë¤È¡¢¥¯¥¨¥ê¡¼¤ò¼Â¹Ô¤·¤Þ¤¹¡£
\q ¤Ç½ªÎ»¤·¤Þ¤¹¡£

·Ù¹ð: ¸½ºßÀÜÂ³Ãæ¤Î¥µ¡¼¥Ð¤Ï¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó 8.3 ¤Ç¤¹¤¬¡¢»ÈÍÑÃæ¤Î
¥¯¥é¥¤¥¢¥ó¥È psql ¤Î¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç¥ó¤Ï 8.1 ¤Ç¤¹¡£\d ¤ò¤Ï¤¸¤á¤È¤¹¤ë
¤¤¤¯¤Ä¤«¤Î¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¥³¥Þ¥ó¥É¤ÏÀµ¾ï¤Ëưºî¤·¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£

postgres=# \l
             ¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷
    ̾Á°     |  ½êÍ­¼Ô  | ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
-------------+----------+------------------
 nobuneko_db | postgres | EUC_JP
 postgres    | postgres | EUC_JP
 template0   | postgres | EUC_JP
 template1   | postgres | EUC_JP
(4 ¹Ô)

¡ÖERROR:  invalid byte sequence for encoding "EUC_JP": 0xe590¡×¤È¤¤¤Ã¤¿¥¨¥é¡¼¤¬½Ð¤¿¾ì¹ç¤Ï¡¢¥µ¡¼¥Ð¤Î´Ä¶­ÊÑ¿ôLANG¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È°ìÃפµ¤»¤ë¤³¤È¤Ç²ò·è¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡¢¤È»×¤Ã¤¿¡£

¢¨¡Öexport LANG=ja_JP.eucJP¡×¤Ç´Ä¶­ÊÑ¿ôLANG¤òEUC_JP¤ËÊѹ¹¤·¤Æ¤â¡¢¥µ¡¼¥Ð¤òºÆµ¯Æ°¤·¤¿¤ê¡¢SSH¥³¥Þ¥ó¥É¤Ç¥ê¥â¡¼¥ÈÀܳ¤ò¤ä¤êľ¤·¤¿¤ê¤·¤¿»þ¤Ë¤Ï¡¢¤Þ¤¿¸µ¤ÎÀßÄê¡Ê¾åµ­Îã¤Ç¤ÏUTF-8¡Ë¤ËÌá¤ë¤Î¤ÇÃí°Õ¤¬É¬Íס£

¢¨postgresql.conf¤Îclient_encoding¤Ç¤âÀßÄê¤Ç¤­¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤½¤Á¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢º£ÅÙ»þ´Ö¤¬¤¢¤ì¤Ð¤ä¤Ã¤Æ¤ß¤¿¤¤¡£

PostgreSQL¥µ¡¼¥Ó¥¹¤òÄä»ß¤¹¤ë¤¿¤á¤Ë¡¢pg_ctl¥³¥Þ¥ó¥É¤Ç¡Östop¡×¡ÊÄä»ß½èÍý¡Ë¤ò¼Â¹Ô¤·¤Æ¤âÄä»ß¤Ç¤­¤Ê¤¤»þ¤¬¤¢¤ë¡£

¡ÔÎã¡Õpg_ctl¥³¥Þ¥ó¥É¤Çstop¡ÊÄä»ß½èÍý¡Ë¤ò¼Â¹Ô¤¹¤ë¤¬¡¢¼ºÇÔ¤·¤Æ¤·¤Þ¤¦¾ì¹ç¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸
$ /usr/local/postgresql8/bin/pg_ctl -D /usr/local/postgresql8/data/ stop
waiting for server to shut down............................................................... failed
pg_ctl: server does not shut down

¡ÔÎã¡Õpg_ctl¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤ò³Îǧ
$ /usr/local/postgresql8/bin/pg_ctl --help
pg_ctl is a utility to start, stop, restart, reload configuration files,
report the status of a PostgreSQL server, or signal a PostgreSQL process.

Usage:
  pg_ctl start   [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
  pg_ctl stop    [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
  pg_ctl restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
                 [-o "OPTIONS"]
  pg_ctl reload  [-D DATADIR] [-s]
  pg_ctl status  [-D DATADIR]
  pg_ctl kill    SIGNALNAME PID

Common options:
  -D, --pgdata DATADIR   location of the database storage area
  -s, --silent           only print errors, no informational messages
  -t SECS                seconds to wait when using -w option
  -w                     wait until operation completes
  -W                     do not wait until operation completes
  --help                 show this help, then exit
  --version              output version information, then exit
(The default is to wait for shutdown, but not for start or restart.)

If the -D option is omitted, the environment variable PGDATA is used.

Options for start or restart:
  -l, --log FILENAME     write (or append) server log to FILENAME
  -o OPTIONS             command line options to pass to postgres
                         (PostgreSQL server executable)
  -p PATH-TO-POSTGRES    normally not necessary
  -c, --core-files       allow postgres to produce core files

Options for stop or restart:
  -m SHUTDOWN-MODE   can be "smart", "fast", or "immediate"

Shutdown modes are:
  smart       quit after all clients have disconnected
  fast        quit directly, with proper shutdown
  immediate   quit without complete shutdown; will lead to recovery on restart

Allowed signal names for kill:
  HUP INT QUIT ABRT TERM USR1 USR2

Report bugs to <pgsql-bugs@postgresql.org>.

PostgreSQL¥³¥Þ¥ó¥É¡Öpg_ctl¡×¤Ç¥·¥ã¥Ã¥È¥À¥¦¥ó¥â¡¼¥É¤ò»ØÄꤷ¡¢PostgreSQL¥µ¡¼¥Ó¥¹¤òÄä»ß
pg_ctl¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¤Ç¡ÖOptions for stop or restart:¡×¡ÊÄä»ß¤Þ¤¿¤ÏºÆµ¯Æ°ÍѤΥª¥×¥·¥ç¥ó¡Ë¤È¤¤¤¦¹àÌܤò¸«¤ë¤ÈSHUTDOWN-MODE¡Ê¥·¥ã¥Ã¥È¥À¥¦¥ó¥â¡¼¥É¡Ë¤ò»ØÄê¤Ç¤­¤ë¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£
¡Ö-m SHUTDOWN-MODE   can be "smart", "fast", or "immediate"¡×¤ò¸«¤ë¤È¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¥â¡¼¥É¤Ë¤Ï¡¢smart¡¢fast¡¢immediate¤Î3¼ïÎब¤¢¤ë¤è¤¦¤À¡£

¡ÖShutdown modes are:¡×¡Ê¥·¥ã¥Ã¥È¥À¥¦¥ó¥â¡¼¥É¤Ï°Ê²¼¤ÎÄ̤ê¡Ë¤È¤¤¤¦¹àÌܤò¸«¤ë¤È¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¥â¡¼¥É3¼ïÎà¤ÎÀâÌÀ¤â¤¢¤Ã¤¿¤Î¤Ç¡¢Ê¬¤«¤ê¤ä¤¹¤¤¡£
smart       quit after all clients have disconnected
fast        quit directly, with proper shutdown
immediate   quit without complete shutdown; will lead to recovery on restart

immediate¤Ï¡¢¡Öwill lead to recovery on restart¡×¡ÊºÆµ¯Æ°»þ¤Ë¥ê¥«¥Ð¥ê¤¬É¬Íפˤʤë¡Ë¤È¤¤¤Ã¤¿¤Á¤ç¤Ã¤È¤è¤¯Ê¬¤«¤é¤Ê¤¤Éݤ½¤¦¤ÊÀâÌÀ¤¬½ñ¤«¤ì¤Æ¤ª¤ê¡¢»ä¤Ë¤Ï¼Â¹Ô¤¹¤ëͦµ¤¤¬¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢fast¤Ç¼Â¹Ô¤¹¤ë¤³¤È¤Ë·è¤á¤¿¡£

$ /usr/local/postgresql8/bin/pg_ctl -D /usr/local/postgresql8/data/ -m fast stop
waiting for server to shut down..................................... done
server stopped

Ää»ß¤Ç¤­¤¿¡ª

¡Öpg_ctl¡×¤Çñ¤Ë¡Östop¡×¤È»ØÄꤷ¤¿¤À¤±¤ÎÄä»ß½èÍý¤Ç¤ÏPostgreSQL¥µ¡¼¥Ó¥¹¤ÎÄä»ß¤Ë¼ºÇÔ¤·¤Æ¤¤¤Æ¡¢¤É¤¦¤·¤è¤¦¤«¡¢¤Èº¤¤Ã¤Æ¤¤¤¿¤Î¤À¤¬¡¢¡Ö-m fast stop¡×¤È¥ª¥×¥·¥ç¥óÉÕ¤ÇÄä»ß½èÍý¤ò¼Â¹Ô¤¹¤ì¤Ð¡¢Ää»ß¤Ç¤­¤¿¤Î¤Ç¡¢ÂçÊÑ´ò¤·¤«¤Ã¤¿¡£

CSE¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢Áᮡ¢CSE¤òµ¯Æ°¤·¤ÆPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤·¤è¤¦¤È¤¹¤ë¤È¡¢

¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼Â¹ÔÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£

¥¨¥é¡¼ÆâÍÆ¡§
¥Ç¡¼¥¿¥Ù¡¼¥¹½èÍýÍÑ¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É»þ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£

DB¥¨¥é¡¼¾ÜºÙ¡§
¡Ölibpq.dll¡×¥í¡¼¥É»þ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£

¤È¤¤¤Ã¤¿¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ÆPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤Ê¤¤¡£

CSE¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¡Êcse.exe¤¬¤¢¤ë¥Õ¥©¥ë¥À¡Ë¤ò³Îǧ¤¹¤ë¤È¤¹¤°¤Ëʬ¤«¤ë¤¬¡¢CSEÇÛÉÛ¸µ¤è¤êCSE¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤¿¤À¤±¤Ç¤Ï¡¢CSE¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¤Ë¤Ï¡Ölibpq.dll¡×¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£CSE¤ÇPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤¹¤ë¤Ë¤Ï¡¢¡Ölibpq.dll¡×¤òÆþ¼ê¤¹¤ëɬÍפ¬¤¢¤ë¡£

CSEÇÛÉÛ¸µ¡Ê¤Ä¤ß¤­¥¦¥§¥Ö¡Ë¤Î¥Ú¡¼¥¸¤Ç¡Öưºî´Ä¶­¡×¡Êhttp://www.hi-ho.ne.jp/tsumiki/cse_4.html¡Ë¤ò¸«¤Æ¤ß¤ë¤È¡¢°Ê²¼¤Îµ­½Ò¤ò³Îǧ¤Ç¤­¤ë¡£

¢¦¡¡PostgreSQL¤ËÀܳ¤¹¤ë¤Ë¤Ï¡¢¡ÖÆüËܸìWindowsÈÇ libpq.dll¡×¤¬É¬ÍפǤ¹¡£
¤ª»ý¤Á¤Ç¤Ê¤¤Êý¤Ï°Ê²¼¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤«¤é¼èÆÀ¤·¤Æ¤¯¤À¤µ¤¤¡£
¢¨ PostgreSQL¤ËÀܳ¤·¤Ê¤¤¾ì¹ç¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£
¥¤¥ó¥¿¡¼¥¦¥£¥ºÍÍ PostgreSQL´ØÏ¢¾ðÊó¥Ú¡¼¥¸

¤³¤Îµ­½Ò¤Ë½¾¤¤¡¢¡Ö¥¤¥ó¥¿¡¼¥¦¥£¥ºÍÍ PostgreSQL´ØÏ¢¾ðÊó¥Ú¡¼¥¸¡×¡Êhttp://www.interwiz.koganei.tokyo.jp/software/PostgreSQL/index.html¡Ë¤ò¸«¤Æ¤ß¤ë¡£

¾åµ­¥Ú¡¼¥¸¤Î¥ê¥ó¥¯¤è¤ê¡¢¡ÖPostgreSQL¤ÈWindows¡×¤È¤¤¤¦¥Ú¡¼¥¸¡Êhttp://www.interwiz.koganei.tokyo.jp/software/PostgreSQL/windows.html¡Ë¤ò³«¤¯¤È¡¢¡ÖÆüËܸìWindowsÈÇ libpq¡×¡Êlibpq-6.5jp.zip¡Ë¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬·ÇºÜ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¤ò¥À¥¦¥ó¥í¡¼¥É¤¹¤ë¡£

¥À¥¦¥ó¥í¡¼¥É¤·¤¿libpq-6.5jp.zip¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡Ölibpq.dll¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òCSE¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À¡Êcse.exe¤¬¤¢¤ë¥Õ¥©¥ë¥À¡Ë¤ËÊݸ¤¹¤ì¤Ð¡¢CSE¤ÇPostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÀܳ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

2011年11月

Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

¥¢¡¼¥«¥¤¥Ö

¥«¥Æ¥´¥ê¡¼