PostgresSQLについて語ろう

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
とりあえず6.5の話題から
2名無しさん@お腹いっぱい。:03/07/01 02:05 ID:???
くりりん
3名無しさん@お腹いっぱい。:03/07/01 02:05 ID:ZbaQ/VYo
OK!語ろうぜ
4名無しさん@お腹いっぱい。:03/07/01 02:05 ID:???
∧_∧
( ´・ω・) みなさん、お茶が入りましたよ・・・・。
( つ旦O
と_)_) 旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦
5名無しさん@お腹いっぱい。:03/07/05 08:20 ID:e8RE+Tmv
                               __
                          ,-'⌒ ̄ ヽ、_ヾ、
                       ,ー<「√ヽ⌒ー-、 〕 ヽ
                 __,-―' ̄; :\{ヾ ヽ   )|  )、
       、ミ、、、、--ー―' ̄:::・。::.‘: ;;: |λヾ {  //  /∧
      三ミヾヽ`⌒ヽ-、_  ・.  .・;;; :;:: :| 7 ) ) ||   // ノ|
      ニミヾ、`ミミ`、ヾ  `‐-、_; ; : ::;; ・;: | ///  ,ツ //|
      ≫二ヾミ、、ミ ニ三   ̄ヽ、_;; _   ノ(⌒)'==-'  //|
       ヾヽヾ、、ミミミ  ニ三 γ'  ヾ >^ノ|下ヾニ_- =ノ/ |
         {リミヾ ミミ 三   (  ・  }'   //|ヾ、 {  ̄   |
         川ヾ、、ミ三ミ ,-‐―ヽ,=='    (( ||  ヽニ==ン
         ヾ、リ ミミ,-‐'二-―' ̄      //( し、    /
           ヾ、、//            v  \_二≫ /
           //^             (      _/
           し'                 ヾ  _/
           ヽ、                  /
             ヽ、             , ‐'
               `ヽ、_    __,-‐'
6名無しさん@お腹いっぱい。:03/07/05 08:59 ID:uEWTkVd7
select count(*) from このスレ where body like "%まともなPostgresの話%";
>>7 結果宜しく
7名無しさん@お腹いっぱい。:03/07/05 09:50 ID:???
>>6
正確にはこうじゃないの?
select count(*) from このスレ where body like '%まともなPostgresの話’;
Postgresってキャラ型ってシングルコーテーションでしょ?
ダブルでもいいの?
あと「このスレ」も「PostgresSQLについて語ろう」にしましょうw
8名無しさん@お腹いっぱい。:03/07/05 15:03 ID:W/o2n/dV



 P o s t g r e S Q L で す が

9名無しさん@お腹いっぱい。:03/07/05 15:29 ID:???
>>8
ワラタ。
気付かなかった。
10名無しさん@お腹いっぱい。:03/07/05 16:05 ID:???
V2の光の翼が・・・
11名無しさん@お腹いっぱい。:03/07/05 16:55 ID:UA46nXv6
素直に7.3使っとけ
12名無しさん@お腹いっぱい。:03/07/06 00:47 ID:PgmGixoi
「PostgreSQL」って「ぽすとぐれえすきゅーえる」って読んで良いんだよな?
13名無しさん@お腹いっぱい。:03/07/06 01:31 ID:???
少し前に、「カードキャプターさくら」という、NHKで放映された
マンガが流行っていました。うちの息子(36歳、無職)も、「さくら
たんハァハァ」と一生懸命見ています。だいぶ前に終わったのに、
ビデオ屋などに行くと、根強い人気を持っているとのこと。

さて、「さくら」という名前を女の子に付ける親が、ここのところ急
増したと、先日の「朝日新聞」に書いてありました。今の若い人は知
らないと思いますが、桜は戦争=軍国主義のシンボルでした。アジア
の人々の心をあざ笑うかのように、最近の靖国公式参拝を公言し、異
を唱える市民を「頭のおかしい人」と冷笑するタカ派の小泉首相の異
常な人気を考えると、さもありなんという気がします。

このマンガは、主人公の女の子がいきなり「あんたはカードキャプ
ターや!」と有無を言わさず言われて、戦わされます。私はふと、か
つて若者が「赤紙」1枚で無理やり兵隊に取られた過去を思い出しま
した。そんな時代はもういやです。スタッフの皆さんには、戦争で亡
くなった方はいないのでしょうか。平和を愛する人間らしい気持ちは
ないのですか!なによりも平和が一番です!

また、「愛がなくなるなんて悲しすぎるよ」と言って、悪役と戦う
シーンがありますが、侵略戦争はいつも「お国のため」といったきれ
い事のもとに行なわれるのです。このマンガが、軍国主義を扇動して
いる危険なマンガに見えるのは、私だけでしょうか。

NHKは不偏不党と言うのは、真っ赤なうそだと、本多勝一さんも書
いておられます。実際には、世界に誇る平和憲法をないがしろにする、
危険なマンガを垂れ流しているのです。

私には、NHKをつけると映ってくる、この小さな女の子の「は
にゃーん」という声が、若者を戦争へと駆り立てる軍靴の足音に聞こ
えてなりません。カードキャプターならぬ、赤紙キャプター「同期の
桜」の時代はもうたくさんです!
14名無しさん@お腹いっぱい。:03/07/10 01:07 ID:???
>>12
FAQだな。
http://www.postgresql.org/docs/faqs/FAQ_japanese.html#1.1
まあ、このFAQの存在があまり知られてないのもどうかと思うんだが。

ちなみに「ぽすぐれ」とかいう人はキモイとされています。
15名無しさん@お腹いっぱい。:03/07/10 11:56 ID:???
7.2->7.3のバージョンageはマイナーじゃないと思う今日この頃。
16名無しさん@お腹いっぱい。:03/07/13 13:46 ID:???
>>15
常識
17あぼーん:あぼーん
あぼーん
18名無しさん@お腹いっぱい。:03/07/25 07:38 ID:IGI7X7oh
ああそうかぁだからユーザの名前って
postgresなのね、納得

ところでLinuxで使っているんですが
検索結果をいっぺんに吐き出して欲しいのですが
可能でしょうか?

わざわざ「続ける」って表示されると
結果の表がずれるんです特にカラム多いやつだと分けわかんなくなります
19あぼーん:あぼーん
あぼーん
20ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:59 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
21名無しさん@お腹いっぱい。:03/08/06 17:18 ID:Ft9W4vTV
正直PostgreSQLのWindows版を待ち続けています。
22名無しさん@お腹いっぱい。:03/08/06 21:15 ID:???
>>21
正直・・・Cygwin使えよ
23名無しさん@お腹いっぱい。:03/08/06 23:03 ID:???
>>21
PowerGres、結構いいよ?
24名無しさん@お腹いっぱい。:03/08/08 00:48 ID:???
>21
一応はあるみたいだけれど・・・これって違うのかなぁ。

PostgreSQL For Windows(ただしNT系のみ対応らしい)
http://www.jdownload.com/filecenter/details/1340.asp
他にも http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
25名無しさん@お腹いっぱい。:03/08/08 13:36 ID:???
何使ってるのかわからんけど、PAGER外すとか、\oでいったんファイルに出力するとか
26名無しさん@お腹いっぱい。:03/08/11 22:08 ID:dEMRgf58
7.2は?
27あぼーん:あぼーん
あぼーん
28名無しさん@お腹いっぱい。:03/08/12 10:26 ID:???
シェルで、setenv だのexportだの使って、PAGER=/bin/cat にでもしとけば
止まらないよ。止めたくなったらmore だの less だのに戻せばいい
29名無しさん@お腹いっぱい。:03/08/12 10:38 ID:???
補足
sh,bash,zsh → export PAGER=/bin/cat
csh,zsh → setenv PAGER /bin/cat
(zshはどっちも通じる、sh系はsql 起動時に
PAGER=bin/cat psql
でもよい、csh系は知らん)
30名無しさん@お腹いっぱい。:03/08/12 10:39 ID:???
ミスった
PAGER=bin/cat psql → PAGER=/bin/cat psql
3125,28-30:03/08/12 11:24 ID:???
たびたびスマン

\? で見てみたら、\pset pager つーのがあるじゃん
\pset pager off
で止まらなくなり、on で止まるようになる
32名無しさん@お腹いっぱい。:03/08/13 15:08 ID:???
PostgreSQL って EJB QL の関数をサポートしてないのでしょうか?
例えば、

SELECT
OBJECT(a)
FROM
myTable AS a
WHERE
SUBSTRING(a,userID, 1, 4) = ?1

みたいに EJB QL のSUBSTRING関数なんかを使っていると

java.sql.SQLException: ERROR: parser: parse error at or near "{"
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:131)

という例外が発生します。
関数を使わなければ、問題なく抽出が成功するんですけど・・・
33山崎 渉:03/08/15 22:02 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
34山崎 渉:03/08/15 22:46 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
35名無しさん@お腹いっぱい。:03/08/17 00:34 ID:???
>>32マルチやめれ
36名無しさん@お腹いっぱい。:03/08/17 13:46 ID:???
>>33-34マルチやめれ
37名無しさん@お腹いっぱい。:03/08/28 17:26 ID:???
マルー
38名無しさん@お腹いっぱい。:03/09/19 16:52 ID:fWekkCqX
(,,゚Д゚)∩先生質問です
ポスグレって何万件ぐらいまでちゃんと扱えるんだろう。
百万件?
一千万件?
件数かかわらず1.5TBのデータってあつかえるんだろうか?
39名無しさん@お腹いっぱい。:03/09/19 17:54 ID:???
>>38
FAQにはこう書いてあった。

データベースの最大サイズ? 制限無し (4 TB のデータベースも存在します)
テーブルの最大サイズ? 16TB
ロウの最大サイズ? 1.6TB
フィールドの最大サイズ? 1GB
テーブル内での最大ロウ数? 制限無し
テーブル内での最大カラム数? カラムの型により250-1600
テーブル内での最大インデクス数? 制限無し

40NAME IS NULL:03/11/05 04:46 ID:???
>>38
どっかで一千万件実現したっつー記事があったような。
それなりに工夫しなきゃならんらしいけど。

数十万件は楽勝だった。
それ以上は組んでないからわからない。
41NAME IS NULL:03/11/12 02:29 ID:???
PostgreSQLの不足機能を自作し500万人分のデータを管理(上)
http://itpro.nikkeibp.co.jp/members/SI/JIREI/20030902/1/
42NAME IS NULL:04/04/14 18:24 ID:oGs26J7C
もっと語って
4342:04/04/15 21:57 ID:5tDhWOhP
(⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
44NAME IS NULL:04/04/15 22:24 ID:GLC7C0dZ
広末涼子は出産のときあまりにも痛くて脱糞しておまけに失禁もしたらしい。
アイドルなのに・・・ウワァァ━━━━━。゚(゚´Д`゚)゚。━━━━━ン!!!!

詳細
http://tmp2.2ch.net/test/read.cgi/mog2/1076074534/l50
45NAME IS NULL:05/01/13 12:55:37 ID:???
age
46NAME IS NULL:05/01/18 01:02:50 ID:ENnelzsU
もうすぐリリースですか?
47 ◆CuBRA.266. :05/01/19 17:28:43 ID:nUcKEwnv
48NAME IS NULL:05/01/20 10:49:17 ID:qx/rPHC7
仕事でハードディスクの必要容量を計算しなければいけなくなりました。

ポスグレのデータ型ごとの記憶容量の資料が見つからなくて困っています。
(INTなら4バイト、VARCHARなら文字数+1バイト みたいな資料です)

良い資料があったら教えてください。
49NAME IS NULL:05/01/21 12:18:20 ID:6hWXkFxx
質問スレが行方不明のようなので、ここで質問させていただきます。
今日からORACLEからPostgresに移行作業をはじめたのですが、
ORACLEの質問で
select sum(decode(商品番号,greatest(商品番号,'2999'),数量,数量 * '1000'))
from 売上
where 出荷日>='20050101';
はPostgresではどのような質問になりますか。
実際はもう少し複雑な質問ですが、わからないのは射影の部分だけなので
単純化しました。
50NAME IS NULL:05/01/21 14:46:16 ID:???
8からデータ型の変更ができるようになったのが凄く嬉しい。
これでファッキンな仕様変更にも対応しやすくなって
WEB屋は喜んでいるはず。

まだ怖いのでアップグレードはしないが。
51NAME IS NULL:05/01/21 23:39:24 ID:MFurI2o3
PostgresにはSQL Serverでいう照合順序みたいなものってのはないの?
たとえば、whereで検索するときに全角と半角を同一視してくれるとか、
カタカナひらがなを同一視してくれるとか。
52NAME IS NULL:05/01/22 09:30:14 ID:VCePET9E
8でましたね。
ところで、PostgreSQL+ODBCという環境でWindowsからアクセスしている
人いますか?その時は、やっぱりinterwizのドライバでしょうか?タイムスタンプが
古いんで、最新版とか他の奴が作った何かがあったりするのでしょうか?
53NAME IS NULL:05/01/22 12:49:02 ID:???
54NAME IS NULL:05/01/23 01:48:43 ID:yzt6rpsY
今、自作のWEB RPGつくってるのだが、
データベースをどうしようかと思ってたところに、
運良くPostgresSQLのWindows版がリリース。

MySQL試してたんだが、ちょっとうまくいかず
困ってたところだった。

>>52

8インストールしたら、ODBCインストールされたよ。

ところで、PostgresSQLってポストグレイスSQLって
いう読み方だったんだな。なぜかぽーてぇじゅSQL
って読んでた。てか、冷静にみればどうやったら読
むんだよOrz

55NAME IS NULL:05/01/23 09:52:21 ID:???
>>54
おいおい、誰に聞いたんだよその発音。
http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html
56NAME IS NULL:05/01/23 22:28:28 ID:???
>>55

うは、ポストグレスキューエルか。おっちょこちょいな正確なのでね^^;
thx

8のODBCまわりを試したけど、APSからも問題なく接続できて一安心。
MySQLはこれがどうもうまくいかんかった。多分私の設定の仕方が悪
かったのだろうけどね。

UIは、ちょっと試しただけだけど、細かい部分で不具合がちらほら。
でも、データベースの基本部分は問題なく操作できそうだったから、
特に問題なし。

実際の処理は、まだ実際にためしていないので、わかりません。

以上8を使った感じのレポートでした。
57NAME IS NULL:05/01/23 22:45:08 ID:???
ぽすぐれっていうとキモイのかよ
5年ぐらいそう呼んでたyo
58NAME IS NULL:05/01/24 01:45:41 ID:v1IxMEsA
59NAME IS NULL:05/01/24 11:49:49 ID:???
>>56
UIってpgAdminのことか。
もともとLinux使いならpsqlの方がいいぞ。
その他createdb,dropdb,vacuumdb,pg_dumpとか
\binにつまってる。
60NAME IS NULL:05/01/24 12:19:41 ID:???
>>59

ほほう。そうなんですか。

まだ、いじり始めたばかりなのでよくわかってないのです。

へたれWindows使いなのですが、該当フォルダがあるみ
たいなので、いろいろ見てます。

thx
61NAME IS NULL:05/01/25 09:17:16 ID:???
>59
pgAdminUをインストールしたのですが、起動できません。
『highlightbox.ocxからコントロール'HBX 'をロードできませんでした・・・』
OCXのバージョンが最新でないとのことですが、
OCXはどこからか入手できるのでしょうか?

ちなみにSP5のコントロールはインストール済みで、
環境は、WindowsXP Homeです。
62NAME IS NULL:05/01/25 10:05:51 ID:???
>>61
つか、Postgres8.0同梱のpgAdminはVだぞ。
単体で入れたのか?
Postgres8.0のインストーラーから入れてみて。
だめならPostgres8.0ごとアンインストールの上
再インストールで。
63NAME IS NULL:05/01/25 10:18:36 ID:???
>62
pgAdminについて勘違いしていたようです。
Windows版Postgre専用の管理ツールということでしょうか?

FreeBSDで起動しているPostgreに、
Accessのデータをエクスポートしたかったのですが、
pgAdminは使えませんね?
64NAME IS NULL:05/01/26 10:33:24 ID:???
pgAdminでテーブル作って、ODBC経由でACCESS直繋ぎして、データコピー汁。
65NAME IS NULL:05/01/26 15:14:19 ID:???
>>63
そう、pgAdminは管理ツール。

Acceessデータを入れるんなら>>64でいいっしょ。
件数大杉でだめならタブ区切りのテキスト作って
psqlで流し込むとか。
ファイルの中身は標準入力からのCOPYコマンド辺りを
調べれ。
66NAME IS NULL:05/01/27 10:40:20 ID:???
すいません、質問させてください。
バージョン7.0使ってるんですが、SQLにデータ放り込む時に空欄にして
おきたいところは何で区切ったらよいのでしょうか?
67NAME IS NULL:05/01/27 11:17:14 ID:???
>>66
これは・・・どういう意味だろ?
「区切ったら」って>>65の流れで、COPYコマンドの場合?
なら「\N」だ。
参考として、一回pg_dumpで吐き出して中身みてくれ。
68NAME IS NULL:05/01/27 12:13:09 ID:???
>67
空欄、というのは「NULL」にしておきたいってことです。
DBに放り込むときに、どの文字列が「NULL」として扱われるのか知りたいです。
お願いします。
69NAME IS NULL:05/01/27 12:27:33 ID:???
>68
どうやって放り込むか言わないと答え辛いよ
70NAME IS NULL:05/01/27 12:37:53 ID:???
>69
そうですね、すいません。
タブ区切りにしたファイルをあらかじめ作成したテーブルに
\copyで入れる時です。
71NAME IS NULL:05/01/27 15:16:59 ID:???
\Nでできない?
72NAME IS NULL:05/01/29 17:28:38 ID:xsQIj7ah
select * from pg_tables; で(where 句無し)、
infomation_schemaとpg_catalog に属するテーブル名は表示させたくないんだけど、
そんな設定だれか知らないっすか?(もちろん postgres ユーザ以外で)

REVOKE でいくら設定しても表示されちまうよ…。
73Windowsのサービス:05/01/31 10:37:54 ID:OLncBBhI
Windows Server 2003にCygwin1.5.11 + PostgreSQL7.4.5にインストールしています。
CygserverとPostgreSQL(postmaster)はOSのサービスに登録しています。
PCの起動直後のPostgreSQLのサービスが起動はするのですが1〜5分後に停止状態になっていしまいます。
その後、手動で開始した後は停止する事はありません。
どなたか解決方法をご存知の方いらしたら教えて下さい。
その時のログです。
LOG: database system is ready
4 [main] postmaster 2528 fork_copy: linked dll data/bss pass 0 failed, 0x3EF000..0x3F0930, done 0, windows pid 3900, Win32 error 487
LOG: could not fork checkpoint process: Resource temporarily unavailable
LOG: server process (PID 3900) exited with exit code 255
LOG: terminating any other active server processes
LOG: all server processes terminated; reinitializing
104693 [main] postmaster 2528 fork_copy: linked dll data/bss pass 0 failed, 0x3EF000..0x3F0930, done 0, windows pid 3256, Win32 error 487
LOG: could not fork startup process: Resource temporarily unavailable

宜しくお願いします。
74NAME IS NULL:05/01/31 11:56:40 ID:???
迷わずPostgreSQL8.0 Win32版を使うべし。
出たばっかで不安だという意見もあるだろうけど、
Cygwin + Postgres自体信頼できないものだからね。
75NAME IS NULL:05/01/31 14:11:09 ID:OLncBBhI
73です。
今まで何箇所かCygwin1.5.11 + PostgreSQL7.4.5をインストールしてきたけど
問題なく動作しています。(OSはWindows 2000 Serverも含みます。)
今回は既にIIS等が設定された環境にインストールしているため、そこのところが
いつもとは違うところではあります‥‥。

>74
PostgreSQL8.0は最後の手段にしようかと考えています。

76NAME IS NULL:05/01/31 17:59:49 ID:???
linux入れて8使えばいいのに
77NAME IS NULL:05/02/01 01:12:09 ID:???
coLinux だな。
78NAME IS NULL:05/02/13 23:35:01 ID:/2q5+wOU
他のスレでも聞いたんだけど
postgreに画像を登録する事は可能?
もしできるなら型はどうすればいいの?
79NAME IS NULL:05/02/14 02:08:44 ID:???
byteaだったかな
8078:05/02/15 00:13:42 ID:???
ありがと〜
試してみま〜す
81NAME IS NULL:05/02/17 00:49:23 ID:???
libpqをSSL対応にしてVCでDLL作るにはどうしたらいいの?
82NAME IS NULL:05/02/17 01:48:45 ID:???
>>81
1.VCでDLLプロジェクトを新規作成
2.本家からlibpqのソースをとってきてSSL対応に改造
3.VCでビルド

正味1時間もかからないよ。
83NAME IS NULL:05/02/17 09:01:07 ID:???
>>82
>2.本家からlibpqのソースをとってきてSSL対応に改造
ここの所、詳しくキボンヌщ(゚д゚щ)カモーン
8481:05/02/18 04:56:01 ID:???
今はソースをnmakeとwin32.makを使ってコンパイルしようとしてる。
SSL非対応のものなら簡単にできるんだけど、結局SSLに対応させる方法がよくわからない。

というわけで щ(゚д゚щ)カモーン
85NAME IS NULL:05/02/18 20:03:45 ID:???
>>84
ぐぐれば一発で見つかるわけだが。
漏れは試してないけどな。
ttp://ishii.mydns.jp/modules/bwiki/index.php?PostgreSQL#content_1_3
8681:05/02/18 20:32:28 ID:???
昨日やったけど、コンパイルでこけるから、変更方法が間違っているのかな、と。

・コンパイル時にSSL辺りも見るようにWindows環境変数を設定
・win32.makを書き換え
(そこのHPに書いてある通りにやった・・・はず)

で実行→「aaa.hが見つかりません」でエラー
「aaa.h」をカレントディレクトリにコピー
で実行→「bbb.hが見つかりません」でエラー
以下ループ。
書きながら改めて考えてみると、単に設定間違ってるだけくさいなぁ・・・

>>85
説明不足ですみませんでした。
8785:05/02/19 19:58:36 ID:???
>>86
>#include <openssl/ssl.h>

8.0.1ならwin32.makとか書換不要。
MSVC6だとplatformsdkのライブラリが必要だった。
88NAME IS NULL:05/02/20 23:06:58 ID:8qyMSwWQ
大変低レベルな質問失礼します。
8.0(win32)の常駐解除を行いたいのですが、うまくいきません。

msconfigで常駐解除しようとしたのですが、
「スタートアップ」の欄にPostgreSQLらしいプログラムが見当たりませんでした。
どうかご教授よろしくお願いします。
89NAME IS NULL:05/02/20 23:12:52 ID:???
コントロールパネルの管理ツール-サービスより「PostgreSQL Database Server 8.0」を選択し、
スタートアップを「手動」に設定。ついでに[停止]押してサービスを止めとけ。
90NAME IS NULL:05/02/21 09:26:12 ID:???
webminとの相性はどうなのだろうか、、、
pg_ctlでの起動が失敗する。。。
9188:05/02/21 18:23:02 ID:???
>89さん
できました。
他の分野でも応用が利きそうな、
大変ためになるアドバイスありがとうございました。

92NAME IS NULL:05/02/22 01:08:11 ID:???
SELECT文で 田中 をキーに 中田 中山田 田無羅中 をヒットさせたいと思ってるのですが
(キーの文字を含む(順不同)レコードをヒットさせたい)
この場合 LIKE '%田%' and LIKE '%中%' ..... とするしかないのでしょうか?

どこかのページで LIKE "*[田中]*" とすると、田、中の文字を含むレコードがヒットするというのを見たのですが
"だし 実験してもエラーになるし、、

93NAME IS NULL:05/02/22 09:54:15 ID:???
94NAME IS NULL:05/02/22 17:32:28 ID:???
SELECT * FROM tbl WHERE t ~ '(田.*中|中.*田)'
とかできそうだけど、たいして効率はかわらん気がする。
95NAME IS NULL:05/02/22 18:07:25 ID:BhZhi8Nj
SELECT * FROM HOGETABLE WHERE HOGECOLUMN SIMILAR TO '%(田|中)%';
でいいんじゃない?
でもだめSQLだな。
96NAME IS NULL:05/02/22 18:09:34 ID:BhZhi8Nj
>95
あ、だめじゃん。
自レス。
97NAME IS NULL:05/02/22 19:23:40 ID:???
PostgreSQLとSnortとBASE(ACID後継)の連携ついてお伺いします。

PostgreSQLユーザーにsnortを作成し、データーベース名をsnortとしました。

snort.confにおいて、
output database: alert,postgresql, user=snort dbname=snort
output database: log,postgresql, user=snort dbname=snort
とし、
base_conf.phpにおいて、
$BASE_urlpath = ".";
$DBlib_path = "/apache2/htdocs/base/adodb";
$DBtype = "postgres";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "5432";
$alert_user = "snort";
$alert_password = "";
$ChartLib_path = "/apache2/htdocs/base/phplot";

と設定しましたが、ページ表記は出来るものの、
データーの受け渡しがうまくいっていないのか、アラートログデータが
ページに反映されません。

尚、PostgresSQLユーザーのパスワード設定は行っていません。
98NAME IS NULL:05/02/22 19:50:11 ID:3Jql297A
どなたか教えて下さい
Fedora core3にPostgreSQL7.4.7をインストールしています。
initdbを動かすと

creating directory /home/postgres/data... ok
creating directory /home/postgres/data/base... ok
creating directory /home/postgres/data/global... ok
creating directory /home/postgres/data/pg_xlog... ok
creating directory /home/postgres/data/pg_clog... ok
selecting default max_connections... 10
selecting default shared_buffers... 50
creating configuration files... ok
creating template1 database in /home/postgres/data/base/1...
initdb: failed
initdb: removing data directory "/home/postgres/data"

template1を生成する辺で止まってしまいます。
どなたか解決方法をご存知の方いらしたら教えて下さい。
99NAME IS NULL:05/02/22 22:54:20 ID:???
マジでだるい、webminからpostgresql8.0.1を起動させようとすると
起動するときと起動しねーときがある。だるぃ
100NAME IS NULL:05/02/23 02:39:27 ID:???
ちょっと質問なんですが、アーカイブログってどんな利点があるんですか。

RAIDにすればいいやん、ってな気がするのですけど。
10192:05/02/23 11:12:26 ID:???
>>93
どうもありがとうございました。
やりたいことが書いてありました。
102NAME IS NULL:05/02/23 17:29:21 ID:???
>>100
任意の時点に戻れる。
103NAME IS NULL:05/02/23 19:54:50 ID:???
>>97 postgres8.0.1使ってるとか?
104NAME IS NULL:05/02/23 21:41:54 ID:ePRTzenp
pgAdminでテーブル作ったんですが、DML書くときにいちいちテーブル名を”でくくら
なきゃいけないの?
105NAME IS NULL:05/02/24 07:31:12 ID:lrjxMj1K
FreeBSD5.3なんですが、postgresを入れたあと、
環境変数を/etc/csh.csh.rcに書こうとして、
setenv PATH $PATH:/usr/local/lib
setenv PGLIB /usr/local/bin として、
%source csh.cshrc とやったら、
Bad : modifier in $ (/). と言われてしまいました。
なにがいけないんでしょうか?
(もちろん、シェルは、cshです(全ユーザが)
106105:05/02/24 07:37:09 ID:lrjxMj1K
setenv PATH $PATH:/usr/local/lib

setenv PATH ${PATH}:/usr/local/lib
にしたらおこられませんでした。
ほんとにいいのかなこれで(汗
107NAME IS NULL:05/02/24 09:48:51 ID:???
PostgresSQL8 をwinXPにいれたのですが、
ODBCの設定をしてACCESSからリンクしたいのですが
どのファイルの設定を変更すればよろしいでしょうか?
108NAME IS NULL:05/02/24 12:17:32 ID:???
>>170
postgresq.confとpg_hba.conf
109NAME IS NULL:05/02/25 02:53:09 ID:ijt9Jdrq
freebsd5.3 postgres7.4なのですが、
ポートからいれようとして、make install cleanまではうまくいき、
su pgsql
のあと、
$ initdb -D /usr/local/pgsql/data --no-locale --encoding=EUC_JP
initdb: file "/usr/local/share/postgresql/postgres.bki" not found
This means you have a corrupted installation or identified the
wrong directory with the invocation option -L.

ってなぜでしょう?
定石どうりにやったhずなのですが。
ただ、一回ポスグレをインストールしてからアンインストールしました
110NAME IS NULL:05/02/25 06:00:24 ID:???
corrupted installation
111109:05/02/25 20:09:05 ID:???
>>110
どうすれば回復するのでしょうか?
112NAME IS NULL:05/02/25 20:21:29 ID:Ck9SDS4+
教えてください。
SUNでpostgresをいれて動作しているのですが、全然速度が出ません。
どうやらメモリを全然使用していないようです。
設定をいろいろ変更しているのですが・・・
どのように設定したら、速度が出ますでしょうか?

SUN Fire V240
 1.5GHz UltraSPARC IIIi (1MBキャッシュ) x 2
 4GBメモリ (512MB DIMM x 8)

OS
 Solaris8

postgresのバージョン
 postgresql-7.2.1
 
/etc/systemの設定
 set shmsys:shminfo_shmmax=67108864
 set shmsys:shminfo_shmmin=1
 set shmsys:shminfo_shmmni=100
 set shmsys:shminfo_shmseg=10
 set semsys:seminfo_semmns=200
 set semsys:seminfo_semmni=70
 set msgsys:msginfo_msgmni=50

共有メモリ
 shared_buffers = 1024
 sort_mem = 2048
 vacuum_mem = 8192
113NAME IS NULL:05/02/25 21:25:14 ID:???
7.4.7が出たよ
114109:05/02/25 23:00:28 ID:???
すんません、pgsql userをけしてからやりなおしたら、うまくいきました
115NAME IS NULL:05/02/26 00:50:17 ID:???
create indexで列を指定する際に降順(desc)指定したいんですけど
マニュアル見てる感じでは出来なさそうで困ってます
なんかいい方法はありませんか?
116109:05/02/26 06:50:17 ID:SnGbAP22
すいません
>>114はかんちがいで、やはり、>>109のところでつまづいてしまいました。
どうすればいいのでしょうか?
どなたか教えていただければ幸いです
117109:05/02/26 07:17:12 ID:???
すいません、わかえりました。
client のほうをdeinstallしてないのが原因でした
ども
118NAME IS NULL:05/02/26 13:05:40 ID:???
>>115

Oracleとかでは出来るみたいですね。

浅学な者で、降順にインデックスを作成する局面ってのがよく分からなかったり。
どんな時に使うんでしょうか?
119NAME IS NULL:05/02/27 21:03:31 ID:???
>>118
オプション名忘れたけど、Oracleのはこういう場合では。

シーケンスで取得した連番号などをインデックス指定した場合、
リーフブロックが固まってしまう。→I/Oが集中する。

正確には降順ではなく、「123」→「321」、「124」→「421」と値を
変換して、収まるリーフをばらつくようにする。だったような。
120NAME IS NULL:05/02/28 06:57:09 ID:???
なるほど。

それなら変換関数をストアドプロシージャとして定義して、それ使った関数インデックスを作成すれば代わりになるかも。
121NAME IS NULL:05/02/28 16:02:56 ID:???
調べた。逆キー索引って呼ぶらしいね。
CREATE INDEX index_name ON table_name (columns_name, ...) REVERSE;

ただこれば>>115の求めている内容かどうかは不明。
122NAME IS NULL:05/03/01 18:39:31 ID:???
>>115ですが、作りたいのは逆キー索引ではなくて
↓こんな風に特定の列だけを降順指定したいなあと
CREATE INDEX index_name ON table_name(col1 asc, col2 desc);

演算子クラスを使えばできそうな気がしなくもないけど難しくてよくわからない…
123NAME IS NULL:05/03/02 00:41:49 ID:???
んで、降順指定できなくて期待する実行計画が
得られなかったということか?
どんなふうになったのかexplainの結果晒してみそ。
124NAME IS NULL:2005/03/24(木) 10:48:54 ID:zSQgHi4H
こんにちは。質問があります。
datetime型の列に以下のように時分秒まで値が入っています。
2005-03-23 20:56:10.274312

これを日付の部分のみ取得したりするということはできるのですか?
フォーマット関数と言うのを使えばよいのですか?
125NAME IS NULL:2005/03/24(木) 12:38:00 ID:???
PostgreSQLにおける、DBユーザとUnixユーザの関係がわからん。
DBユーザを作成するには、まず同名のUnixユーザをつくる必要がある?
UnixユーザでOSにログインできれば、パスワードなしでDBにログインできてしまう?
126NAME IS NULL:2005/03/24(木) 13:09:02 ID:QmVcFAro
PostgreSQLに限らず、ほとんどすべてのDBMSで、
DBユーザとUnixユーザは関係ないんだが。
DBさわるの初めてだろ > 125
127125:2005/03/24(木) 13:17:18 ID:???
>>126
MySQLとOracleをやってた。
PostgreSQLだと、DBユーザをつくるまえにUnixユーザを作らなきゃいけないみたいで、他とは違うみたいだったから聞いてみた。
128NAME IS NULL:2005/03/24(木) 19:23:23 ID:QmVcFAro
>>127
最初のデータベースへのログインのときだけね。
普通はサーバ起動するUnixユーザ名でデータベースにログインすることが多い。


細かいこというとコンソールでcreateuserコマンド使えば
DBユーザつくれる。よってDBユーザつくるまえにUnixユーザをつくる必要はない。


要するにデフォルトのDBユーザがいないってこと。
Unixユーザに惑わされる必要はない。
129NAME IS NULL:2005/03/24(木) 20:05:43 ID:XO+wWFSm
>>124
日付の部分のみという意味が「日」のみか「年月日」かで方法が違う
extractで「日」だけ取り出せるし
::dateで「年月日」の型にキャストできる
130NAME IS NULL:2005/03/24(木) 22:58:40 ID:???
>>124
timestamp型から日付のみの文字列を取り出すならto_charでフォーマットして取り出すと楽。
131NAME IS NULL:2005/03/25(金) 02:25:18 ID:???
ちなみにこんな感じな
to_char(タイムスタンプ, 'yyyy/mm/dd') as 日付

ところでおまいら、羽生氏のSQL書き方ドリルが発売されましたよ
132NAME IS NULL:2005/03/30(水) 17:47:03 ID:NpfUYvjJ
SQLの質問です。

外部結合したときに表に別名付けるのってどうするんですか?
FROM tblhoge as abc LEFT OUTER JOIN 〜
とすると失敗します。
133NAME IS NULL:2005/03/30(水) 18:26:04 ID:???
>>132
むしろ逆
134INGRES:2005/03/31(木) 23:16:10 ID:bRhTtWTX
どなたか、PostgresのVIEWをGUIで作成できるツールをご存知ないでしょうか?
VIEWを大量に作成することになったのですが、テーブル構造が複雑で、テキストで書いているのが辛いのですが…
135NAME IS NULL:2005/04/03(日) 23:19:51 ID:7gYpjsU+
Postgres初心者です。
インストール、初期化まではどうにかできたのですが、
createdbでcreatedb: could not connect to database template1: FATAL: user "postgres" does not exist
となってしまい、DBの作成ができません。
具体的にどうすればよいのでしょうか??
136NAME IS NULL:2005/04/04(月) 04:00:07 ID:???
春だねえ( ´ー`)y-~~
137NAME IS NULL:2005/04/04(月) 04:32:41 ID:KM5oPHdv
>>136
感心してねぇで答えろよクズ
138NAME IS NULL:2005/04/04(月) 11:19:51 ID:???
ユーザpostgresがいない。
インストールマニュアル読み直してごらん。
どこかでユーザを作っているはずだから。
139NAME IS NULL:2005/04/04(月) 15:32:33 ID:???
postmasterが上がっていないに一票。
140NAME IS NULL:2005/04/04(月) 15:51:36 ID:DPyic2ET
suse9.1へのpostgresqlのインストール方法が解説してあるページを教えてください
141NAME IS NULL:2005/04/05(火) 17:28:43 ID:???
apt-get install postgresql
142NAME IS NULL:2005/04/05(火) 20:19:15 ID:???
>>134
OOoの2はどうよ?
ちゃんと使ってないからどこまで使えるか分からんが
143NAME IS NULL:2005/04/06(水) 06:17:03 ID:8SoC8hGb
configureで--enable-multibyteを指定しなかった場合、マルチバイト文字を使うとどうなりますか?
144NAME IS NULL:2005/04/06(水) 11:16:25 ID:???
  (´・ω・`) < 知らんがな
145NAME IS NULL:2005/04/08(金) 00:52:45 ID:???
Apache+PHP+MySQLか
Apache+PHP+ポストグレの組み合わせは、どちらがお勧めですか?

初心者で、これから勉強するつもりです。
Cはわかります。
146NAME IS NULL:2005/04/08(金) 12:20:19 ID:???
用途による
147NAME IS NULL:2005/04/08(金) 12:50:21 ID:???
確か、MySQLはGPLじゃないライセンスが有料だったっけな。
148NAME IS NULL:2005/04/09(土) 15:09:49 ID:???
SQLの一般的な知識ならpostgres
単に自分のサイトとかで使いたいだけならmySQL
149NAME IS NULL:2005/04/11(月) 10:01:26 ID:C+Gsfi3e
どこのサーバからでもパスワードさえ合ってたら接続できるようにと
pg_hda.confに以下のように書いたら起動できませんでした。
------------
host all all password
------------
どう書くのが適切なのでしょうか?

#MD5を使えとか、セキュリティがやばいとかは少しはわかってるつもりです
#テスト用なのであらされても困らないので適当設定にしてます
150NAME IS NULL:2005/04/11(月) 10:46:47 ID:???
良く調べもせずカキコ

hostの場合はIPアドレスとネットマスクを省略できないんじゃないの?

host all all 0.0.0.0. 0.0.0.0 password
でどうよ
151YahooBB221085132027.bbtec.net:2005/04/11(月) 13:15:39 ID:???
えぇけっしとるのぉ(*´Д`)ハァハァ


うはっwwwおkwwwうえっwww??
152NAME IS NULL:2005/04/11(月) 19:37:32 ID:???
host all user ip mask md5

これが正解
153NAME IS NULL:2005/04/11(月) 20:30:57 ID:C+Gsfi3e
>>150,152
レスありがとうございます
試してみます
154NAME IS NULL:2005/04/16(土) 00:17:41 ID:Us0ttvrq
スラッシュドット ジャパン | PostgreSQL 8.0.2リリース
http://slashdot.jp/article.pl?sid=05/04/14/0536217&topic=113&mode=nested
155NAME IS NULL:2005/04/16(土) 17:00:02 ID:???
テーブル定義を表示させるにはどうしたらいいでしょう。MySQLなら desc テーブル名 に相当する機能。
「PostgreSQL テーブル定義 表示」でぐぐっても見つからない。psqlのマニュアルにも該当する機能がない。
156154:2005/04/16(土) 17:01:44 ID:???
>.155
\d テーブル名
でできた。逝ってくる。
157NAME IS NULL:2005/04/18(月) 14:16:54 ID:7653fSPw
カラムをEmployeeや、Ageなどと定義しても
SELECTして見るとemployee、ageなどと小文字に
なってしまうのですが、これを定義時の通りに
してくれるにはどうすればよいでしょうか。
158NAME IS NULL:2005/04/18(月) 15:01:18 ID:???
>>157
二重引用符で囲む。
159NAME IS NULL:2005/04/18(月) 15:27:37 ID:???
>二重引用符で囲む。

ありがとうございます。二重引用符で囲むというのは
何を二重引用符で囲めばよいのでしょうか。
としてみましたが、当然エラーになりました。。。

SELECT "Employee" FROM Company;
160NAME IS NULL:2005/04/18(月) 15:55:58 ID:???
>>159
テーブルを作る時に囲んどかないといけないのでは、、、
161NAME IS NULL:2005/04/18(月) 22:03:33 ID:???
COPYでインポートするファイルに、全角日本語文字を使ってる
フィールドがあると、それ以降のカラムが認識されず
エラーになるようなのですが、これは仕方ないのでしょうか?
162NAME IS NULL:2005/04/19(火) 08:38:55 ID:???
>>160
ありがとうございます。

CREATE TABLE "Company"
(
 "EmployeeID" int
);

のようにして大文字化出来ましたが、
Selectするときも

SELECT "EmployeeID" FROM "Company"

などとしなければいけないようです。暗黙的に
大文字、小文字を区別できるような方法は
ないでしょうか?
163NAME IS NULL:2005/04/19(火) 20:31:01 ID:???
ワクワク
164NAME IS NULL:2005/04/20(水) 00:37:15 ID:???
ISNULL(select max(id),0)というような記述は
Postgreでも同様に使えるのでしょうか?
165NAME IS NULL:2005/04/20(水) 13:13:13 ID:???
166NAME IS NULL:2005/04/20(水) 22:40:40 ID:Egg+qrOK
>>165

値がNULLだった場合に1をセットしたいのですが、
coalesceじゃできないんじゃないでしょうか。

coalsce(select max(seq_no) from table,1)だとエラーになりますよ
167NAME IS NULL:2005/04/20(水) 23:12:37 ID:???
できる
使い方を間違っている
Google しろ
168NAME IS NULL:2005/04/22(金) 13:36:05 ID:???
マルチポストすません
情報ありませんか?
http://pc8.2ch.net/test/read.cgi/php/985665522/852-
169NAME IS NULL:2005/04/22(金) 16:00:12 ID:???
postgresqlをインストールするのに最新の 8.0.2 か、
Linuxディストリビューションに入っている 7.3.8 だと
どちらがオススメですか?
170NAME IS NULL:2005/04/22(金) 23:36:12 ID:???
8.0.2。君がチキンなら 7.3.8。
171NAME IS NULL:2005/04/23(土) 01:55:31 ID:6Z+WB6dZ
VBからPostgreSQLのODBC設定をしようと思い、SQLConfigDataSourceメソッドを使ってます。
普通に管理ツールからODBCの設定画面を開いて「textを長文字列として扱う」項目があるんですが、
VBで記述するにはなんて書けばいいか知ってる人がいれば教えてください。
172NAME IS NULL:2005/04/23(土) 09:47:42 ID:???
>>171
TextAsLongVarchar=1かな?
間違ってたらごめん。
173NAME IS NULL:2005/04/23(土) 19:46:53 ID:6Z+WB6dZ
>>173
どうもその名前ではだめみたいなんですよね。
たしかにレジストリではその名前なんですが・・・。
何か間違ってるんでしょうか・・・。
174NAME IS NULL:2005/04/24(日) 04:13:32 ID:???
postgresの配列型にインデックスってつけられる?
各要素の組み合わせとかじゃなく、各要素一つ一つに。
つまりある要素を持つレコードを全て検索する、というような時に使われるインデックスを作れるのかどうか。
175NAME IS NULL:2005/04/26(火) 18:43:31 ID:FK8gAUqb
PostgreSQLのoidってバックアップ・リストアとかしても
不変ですか?
176NAME IS NULL:2005/04/27(水) 00:37:14 ID:???
質問です

PostgreSQL7系を使っているのですが
サーバ1とサーバ2で同じテーブルがあって
一定時間でサーバ1から2へデータを同期したいと
考えています

バックアップとリストアはpg_dumpでできそうなんですが
こいつでリストアしてる際はSELECT文などのリクエストはどうなるのかなぁ
とまる?
177NAME IS NULL:2005/04/27(水) 14:51:17 ID:???
>>176
PGSQLの初心者だけど、
pgpoolのレプリケーションモードじゃだめなの?
178NAME IS NULL:2005/04/28(木) 03:41:03 ID:???
>>176

試してみればいいじゃん。簡単にできるだろ。
179NAME IS NULL:2005/04/28(木) 04:07:04 ID:???
いやだ
180NAME IS NULL:2005/04/29(金) 01:04:26 ID:???
そんなこと言わずにお願いしますよ〜
181NAME IS NULL:2005/05/02(月) 08:52:21 ID:e8FSHM9H
noviceな質問ですいません
データベースのownerを変えるには、どうすれば良いですか?
postgresが所有者になっているデータベースの所有者を、userXXに変更したいのですが。
おながいします。
182NAME IS NULL:2005/05/02(月) 09:32:44 ID:???
>>181
DBそのものは、pg_database を直接変更して
ここのテーブルはALTER を使うんじゃだめかなあ
183NAME IS NULL:2005/05/03(火) 23:27:18 ID:ZT796BS9
Fedora Core 3に8.0.2インストールしようとしたらConfgureでエラーでるな。
184NAME IS NULL:2005/05/04(水) 05:50:13 ID:???
でる?
185NAME IS NULL:2005/05/05(木) 12:40:39 ID:Wd3CnKjG
Fedora Core 3 に 8.0.2 をインストールする時、
ソースコンパイルしていれるのと、rpmで入れるのとだと
どういう違いがでるのですか?
186NAME IS NULL:2005/05/09(月) 00:00:31 ID:???
オプションが同じなら同じでしょう
特に8.0.2はreadlineとか無いとconfigureもできんし
187NAME IS NULL:2005/05/09(月) 09:31:05 ID:rCL5H70u
おはようございます。質問させてください。
between 'xxxx-xx-xx' and 'xxxx-xx-xx' を使用して、
指定した期間にあるデータを取得しようとしているのですが、
andの前に開始時間、後に終了時間を入れないとダメなんですか?
これは逆にしても可能なようにできたりするんですか?
188NAME IS NULL:2005/05/09(月) 09:53:33 ID:???
ダメです
189NAME IS NULL:2005/05/09(月) 10:24:16 ID:???
>188
どうもありがとう。
190NAME IS NULL:2005/05/09(月) 12:29:10 ID:ue5bdXYS
>>186
ん?
readlineをwithout指定してもだめなの?
191NAME IS NULL:2005/05/09(月) 14:01:41 ID:???
>>190
前は無いと勝手にOFFにしてたじゃん
192NAME IS NULL:2005/05/10(火) 11:44:47 ID:zhNEZoqY
phpPgAdminを使ってる方がいらっしゃったら
教えていただきたいのですが、
SQL文を羅列したスクリプトファイルを
一括して実行するには
SQLのページの「upload an SQL script」というところから
ファイルを指定して実行するのでしょうか?

それだと改行を含む文でエラーになりませんか?
CREATE TABLEなど毎回コピペして実行してるのでしょうか?

レンタルサーバを利用しており
phpPgAdminのバージョンは3.4.1です。
193NAME IS NULL:2005/05/11(水) 16:28:38 ID:8/Q3W4Vp
win版postgreSQLとjavaでプログラム作ってるんですが、
データベース作るのってどうやったらいいんでしょう?
先に手動でデータベース作ればあとは動かせるんですけど
そこだけわからなくて止まっちゃってますorz
194NAME IS NULL:2005/05/11(水) 17:55:05 ID:???
普通にCREATE DATABASEできないの?
権限が無いとか?
195NAME IS NULL:2005/05/11(水) 17:59:57 ID:???
JDBC経由でってことでは
196NAME IS NULL:2005/05/11(水) 18:21:14 ID:???
psqlの存在を知らないとか。
197NAME IS NULL:2005/05/11(水) 18:22:38 ID:8/Q3W4Vp
JDBC経由ではわからなかったので、batファイルとかで
できないものかとやってみたんですが
createdb -U postgres test
とやるとパスワードを求めてこられるので自動化できませんでした。
っていうかこの辺りのコマンドライン操作にも詳しくありません。
ググっても調べられず。ヘタレですみませんorz
198NAME IS NULL:2005/05/11(水) 18:28:03 ID:???
>>197
パスワードも指定すれば良いじゃないか
199NAME IS NULL:2005/05/11(水) 18:30:09 ID:8/Q3W4Vp
パスワードって-Wですよね?
createdb -U postgres -W password test
ってやると何故か無視してパスワード要求が来るんですが。
何か間違ってるんでしょうか。
200NAME IS NULL:2005/05/11(水) 18:32:23 ID:???
-W はパスワード待ちをするためのオプションだね
ちょっとWindowsわからんので調べてみる
201200:2005/05/11(水) 18:33:45 ID:???
echo password | createdb -U postgres -W database
とかじゃだめかね
202200:2005/05/11(水) 18:37:02 ID:???
つーか、\h すると、CREATE DATABASEって出てくるんだけど
template1 に接続して SQL で作れないか?
203NAME IS NULL:2005/05/11(水) 18:47:15 ID:8/Q3W4Vp
パスワードの要求はスキップできましたがエラーが。

C:\Program Files\PostgreSQL\8.0\bin>echo postgres | createdb -U postgres
Password:
createdb: could not connect to database template1: FATAL: password authenticati
on failed for user "postgres"

なんか進めそうな感じなんですが。
っていうか会社締められますorz
色々試してみたいんですが…。
教えていただいたのにすみません。
マジ申し訳ないです。自分の能力の無さを痛感しました。
204NAME IS NULL:2005/05/11(水) 18:50:55 ID:???
>>194の言っている意味がやっとわかった orz
205NAME IS NULL:2005/05/12(木) 09:04:05 ID:gJvVR1Vo
>>204
どういう意味ですかorz
アホですみません
206NAME IS NULL:2005/05/12(木) 19:23:42 ID:5XPC1r0p
質問させてください。
connectby()を使おうとしているのですが、ターゲットとなるテーブルが複合キーになっています。
そのままconnectby()に渡すと、key1の番号が重複するので、正しい結果が得られません。
key0 key1  親ID
100  1    0
100  2    1
100  3    2
101  1    0
101  2    1
101  3    2

そこで、以下のようにSELECTにかけてキーを減らしてから、connectby()に渡してやりたいのですが、
そのときだけの一時的なテーブルはつくれるのでしょうか。
SQLひとつですめば、それが一番いいのですが。

key0 key1  親ID
100  1    0
100  2    1
100  3    2
207NAME IS NULL:2005/05/12(木) 20:30:17 ID:???
>>206
第一引数にサブクエリで渡す
connectby('(SELECT * FROM Table WHERE key0=100)',.....
208NAME IS NULL:2005/05/12(木) 20:38:53 ID:4laAhzfd
>>207
それは、さすがに釣りでしょw
209207:2005/05/12(木) 22:00:45 ID:???
>>208
やってみれっ!

サブクエリの後ろにAS fooが必要のようだが...
210NAME IS NULL:2005/05/13(金) 02:18:21 ID:2b3w8b8g
serial 型のカラムを後から追加する方法にはどうしたらいいでしょうか?
211NAME IS NULL:2005/05/13(金) 02:50:53 ID:???
>>210
ALTER TABLE Table ADD COLUMN newfield SERIAL;
212NAME IS NULL:2005/05/13(金) 03:03:54 ID:???
>>211
やってみたら、エラーが出て追加できませんでした
>adding columns with defaults is not implemented
とのこと
213NAME IS NULL:2005/05/13(金) 03:58:15 ID:???
>>212
んじゃぁ、先にシーケンスを作って、
ALTER TABLE Table ADD COLUMN newfield INT DEFAULT nextval('作ったシーケンス'::text);
としてみるか、もしくは
ALTER TABLE Table ADD COLUMN newfield INT;
ALTER TABLE Table ALTER COLUMN newfield SET DEFAULT nextval('作ったシーケンス'::text);
のように一つずつしてみる。
serial型はデフォルトをシーケンスから引っ張り出してくるInteger型なだけ。
214NAME IS NULL:2005/05/13(金) 09:06:54 ID:???
>>213
レスありがとー。
やってみます!
215206:2005/05/13(金) 11:19:40 ID:UXPcRK1/
>>209
ありがとうございます。
本当にできるとは。
きのう一日ずっと悩んでいたんで、できた瞬間、笑ってしまいました。
助かりました。ありがとうございました。
216NAME IS NULL:2005/05/13(金) 18:49:45 ID:k0144XQ7
基本的な質問でもいいでしょうか。
PostgresSQLでint4型のカラムがあります。ここにNULL値を入れることは可能でしょうか。
217NAME IS NULL:2005/05/13(金) 19:11:28 ID:???
NOT NULL の設定が無ければ可能
218NAME IS NULL:2005/05/13(金) 20:23:10 ID:???
ここで聞くより自分で試したほうが早くね?
219NAME IS NULL:2005/05/13(金) 22:41:27 ID:???
それは言わないのが華。
DBに限らずプログラミングもそうだけど、
理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。
ある意味少なくとも日本人エンジニアはその辺、資源を使うという事に臆病だよ。
220NAME IS NULL:2005/05/14(土) 21:20:56 ID:???
>理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。

それって実環境で試してみる以外に確認しようがないよなぁ
221NAME IS NULL:2005/05/16(月) 14:02:20 ID:j344hoIJ
どなたか知恵をお貸し下さい。"postgres" のパスワードを忘れてしまって
何もできません。ウェブを検索すると Linux ユーザである postgres の
パスワード変更すれば良いというサイトもあるのですが、ダメです。

root]$ passwd postgre しても反映されているように思えません。
root]$ su - postgres してコマンド打つとこんな感じです。
postgres]$ psql -l
Password:
psql: FATAL: password authentication failed for user "postgres"

環境は RHL9 + postgresql-8.0.2 です。

一旦 userdel postgres して postgre 関連のファイルを削除してインストール
しなおしてもまだ postgres のパスワードを聞かれます。全くパスワードが思い
出せません。すみませんがアドバイスをお願いします。

222NAME IS NULL:2005/05/16(月) 14:05:09 ID:???
他に管理者権限のユーザー作ってないの?
223221 :2005/05/16(月) 14:07:35 ID:j344hoIJ
作ってませんでした。というか postgres にパスワード設定
したこと事態覚えてません・・・。
224NAME IS NULL:2005/05/16(月) 14:08:40 ID:???
つーか、いったん pg_hba.conf 書き換えて trust にして
修正ってできなかったっけ
225221:2005/05/16(月) 14:12:44 ID:j344hoIJ
今 trust になってますが、それでも何するにもパスワードを聞かれます。
具体的な修正方法をご伝授願いますか?
226NAME IS NULL:2005/05/16(月) 14:16:01 ID:???
なんか必死だから、
ちょっと、じらしプレーをしたくなってきた。
227221:2005/05/16(月) 14:19:11 ID:j344hoIJ
じらされるのはあまり得意ではありません。
プリーズ。
228NAME IS NULL:2005/05/16(月) 14:23:31 ID:???
ほんとにtrustなの? pg_ctl reload とか再起動してみた?
229221:2005/05/16(月) 14:30:52 ID:j344hoIJ
本当にtrustです。が、pg_ctl reload で postmaster.pid がない
と言われました。正常に動いてない? なので現在再インストール中。
その後再起動してみます。アドバイスありがとうございます。
230NAME IS NULL:2005/05/16(月) 14:34:06 ID:???
再インストールって、、、データ空でユーザーもいなかったのか・・・
231221:2005/05/16(月) 14:37:01 ID:j344hoIJ
いないです。でも今日中にユーザ登録管理システム作らなくちゃいけなくて
そんな時にこのパスワード問題なんで悲しいです。前に進めん。
232NAME IS NULL:2005/05/16(月) 14:38:09 ID:???
>>231
なんか君はだめ人間に匂いがするよ。
まあ、がんばって。
233NAME IS NULL:2005/05/16(月) 14:39:02 ID:???
linuxとかで、2箇所にインストールされてたりしないか
234221:2005/05/16(月) 14:45:39 ID:j344hoIJ
ダメ人間って、失礼ですね。別にいいですけど。
/usr/local/pgsql にしかインストールされてません。おかしい。
235NAME IS NULL:2005/05/16(月) 14:49:55 ID:???
/var/lib/pgsql なんてあったりしない?
まあ起動時してconf書き換えて終了したりすると
失敗することはあるからな。kill でちゃんと全部殺してから
起動してみて。
236221:2005/05/16(月) 15:00:16 ID:j344hoIJ
あ〜−−−、よく解りませんが再起動が効きました。
プロセスが残ってたんですね。嬉しいです。お時間
ありがとうございました。感謝いたします。
237NAME IS NULL:2005/05/17(火) 13:29:51 ID:sky/VvmD
PostgreSQLのユーティリティを探しています。
Oracle用のosqlgridのように、データの編集が行えるものが
ほしいのですが、何かありませんでしょうか?
238NAME IS NULL:2005/05/17(火) 13:57:46 ID:???
>>237
osqlgrid はわかりませんが、
PgAdminIII ではどうですか。
公式サイトからたどれます。
239237:2005/05/17(火) 15:52:47 ID:???
>>238
色々触ってみました。どうもありがとうございます。
機能的に申し分ないです。使わせていただこうと思います。

データビューからデータを追加する時って一行ずつ
しか追加できないんでしょうか?
>>237が説明不足で申し訳ないです。
例えばエクセルのセルをコピーするように
ぐわっとデータを作って、更新。
みたいなことがしたいんです。
240NAME IS NULL:2005/05/17(火) 16:18:31 ID:???
>239
AccessとODBCでPostgreSQLに繋いでExcelファイルインポート汁。
241NAME IS NULL:2005/05/17(火) 16:29:27 ID:???
excelだと、cvs出力→INSERT文生成→ツールから実行
というのは面倒か

cvsに出た時点でpsqlでCOPYかスクリプト使う、というのは、
やったことあるけど
242NAME IS NULL:2005/05/17(火) 16:32:08 ID:ytStELjj
>>239
Common SQL Environmentはどう?もう2年くらい更新されてないけど使えると思う。
Postgres専用じゃなくて、OracleとかMySQLもネイティブ接続で、
ODBCで接続できるデータベースでも接続できる。
CSV形式であれば、データの追加も可能。
オートコミットに気をつける必要があるけど。


「つみきソフト」で検索。
243237:2005/05/17(火) 17:23:46 ID:???
Common SQL Environmentでやりたい事が出来ました。
みなさん、どうもありがとうございました。
244NAME IS NULL:2005/05/18(水) 00:36:17 ID:???
CVS?CSV?
245NAME IS NULL:2005/05/18(水) 02:43:36 ID:kEdHowGd
だれか、教えてください。

XP home SP2へWIN32版 PostgreSQL 8.0をインストールして、使用しています。

次のようなテーブル(table1)を作成して、
select * from table1 where 項目1 = '棒';
select * from table1 where 項目1 = '円'; 
select * from table1 where 項目1 = '線';
と、それぞれ実行したところ、'棒' を検索したとき以外は
結果が表示されませんでした。

番号 項目1(text)
1   円
2   線
3   棒

操作はpgAdminIIIおよびpsqlで行ったのですが、結果は変わらず、円と線が表示されません。
DBのエンコーディグは、EUC_JPで、作成しています。
psqlのエンコーディングはsjisだったので、設定上は問題なさそうですが。
漢字コード変換に問題があるのでしょうか?

ちなみに、8.0.3にアップグレードしても、一緒でした。
246NAME IS NULL:2005/05/18(水) 09:45:26 ID:???
>>245
initdb の時、--no-locale つけましたか?
247NAME IS NULL:2005/05/18(水) 10:02:12 ID:9taiR1il
>>244
ぐぐれ。
一方は、表をカンマ形式で保存するフォーマットの名前
もう一方は、ソース管理システムの名前
248NAME IS NULL:2005/05/18(水) 10:08:53 ID:???
すまん、csvのつもりでcvsと書いてしまう
249FROMA:2005/05/19(木) 18:08:12 ID:64ygOH2e
postgreSQLのテーブルで
行番号ではなく値を指定してその値のあるレコードを配列として取得する方法はありますか?
250NAME IS NULL:2005/05/19(木) 21:19:19 ID:???
いままではorder by とlimit,offset を組み合わせて使ってたの?
251NAME IS NULL:2005/05/20(金) 00:55:39 ID:???
>>246

実はPostgresの使用経験が、1ヶ月とちょっとでして、
インストーラーに言われるがままで設定を行ったので、
果たして、自分がinitidbをおこなったのか、も覚えてません。


252NAME IS NULL:2005/05/20(金) 01:11:10 ID:???
show lc_message;
で、何が出ます?
C以外なら
set lc_messages TO 'C';
とかやって、同じことしてみてください。
253NAME IS NULL:2005/05/20(金) 02:15:46 ID:???
show lc_messages; とやってみたところ、japanease_japanと、表示されました。

言われたとおりに、C に変更してみましたが、結果は変わりませんでした。
lc_messagesを、unsetもしてみましたが、一緒でした。

254NAME IS NULL:2005/05/20(金) 05:33:15 ID:???
>>253
インストールからやり直した方が早いんじゃね。
ロケール設定でJapanを選ばずにCのままで。
255NAME IS NULL:2005/05/20(金) 07:28:04 ID:???
$PGDATA/postgresql.conf に

# These settings are initialized by initdb -- they might be changed
lc_messages = 'C' # locale for system error message strings
lc_monetary = 'C' # locale for monetary formatting
lc_numeric = 'C' # locale for number formatting
lc_time = 'C' # locale for time formatting

というのがあったけど
ここ換えて再起動するとかわるのかなあ
漢字のソート、検索でおかしいときはほとんど--no-locale入れてない場合が多いです
256NAME IS NULL:2005/05/20(金) 07:54:54 ID:???
>>255
その4つだけだとソートとか検索とか関係なさそう。
少なくとも7.4.x以前は--no-localeを忘れるとinitdbやり直さなければならなかった。
257NAME IS NULL:2005/05/20(金) 09:35:00 ID:???
real型のフィールドでselectの結果が次のようになります。

db=# select x,x::float8 from point;
x | x
---------+------------------
35.7944 | 35.7944183349609
35.7944 | 35.794376373291

real型で定義してあっても内部ではfloat8の精度を持っているんでしょうか?
realにしてもテーブルサイズの節約にはならないんですか?
258NAME IS NULL:2005/05/20(金) 23:20:53 ID:???
その辺はソース見て調べるとして、、、
Cでfloat扱うときに実際はdouble使ってんのと同じなんでしょうかね
259NAME IS NULL:2005/05/21(土) 00:06:35 ID:???
>>258 大胆な発言だな。
260NAME IS NULL:2005/05/23(月) 08:04:57 ID:???
質問

id | id2 | col1 | col2
1 | 5 | 1 | 4
2 | 5 | 3 | 5
3 | 5 | 3 | 2
4 | 8 | 5 | 9
5 | 8 | 5 | 5
6 | 8 | 2 | 10

というテーブルがある場合に、
id=2と4を抽出したい(id2が同一のものの中で、col1が最大値の行、
ただしco1が同一の値の場合はcol2も比較)
のですが、きれいな方法(sub query使わない)ありますか?

id2を指定できるなら、
select * from table where id2=5 order by col1, col2 limit 1
で取得可能です。

group byしてそれぞれのgroup の中でorder とlimitができるか、ってことなのかな…
261NAME IS NULL:2005/05/23(月) 08:06:31 ID:???
>>260
おっと、上記であげたselect文のorder by にはdescがもちろんつきます。
262260:2005/05/23(月) 08:57:14 ID:???
自己解決したっぽい

もしかしたら誰かの役に立つかもしれないから、書いておくと、
select distinct on (id2) id from table order by id2, col desc, col2 desc;

distinct onってのを知らんかった。

なんか罠があったら教えてほしい
263NAME IS NULL:2005/05/23(月) 22:02:16 ID:ZiM9Oh4Z
cseでWindows版にアクセスできないよ。
Cygwin使いたくないのに。
264NAME IS NULL:2005/05/24(火) 07:22:37 ID:???
dllかえるとか
265NAME IS NULL:2005/05/24(火) 09:29:34 ID:???
Winに限らず、cseから接続できないな
データベース "dbname" が無いと言われる。
ためしに、createdb "\"dbname\"" で作ったらそこにつながった・・・

dll変えてみるか
266NAME IS NULL:2005/05/24(火) 10:15:47 ID:???
>>265
CSEのサイトからたどれるDLLでないと正常につながらない。
267NAME IS NULL:2005/05/24(火) 10:30:25 ID:???
>>266
ありがとうごあじます。
libpq.dllをカレントに置いたらなんとかつながりました。
しかしschema使ってるとアクセスできないのね・・・

まあ SET SEARCH_PATH TO を実行すれば何とかなるか
268NAME IS NULL:2005/05/27(金) 04:01:04 ID:dGXjOC08
テーブルのテキストエンコーディングを変更したいんだけど
ダンプ>変換>書き戻し ってやっていいのかな?
もっとスマートな方法あるんだろうか?
269NAME IS NULL:2005/05/27(金) 09:37:47 ID:???
中のデータに影響するし、取り出して書き戻しは避けられないのでは
270NAME IS NULL:2005/05/28(土) 01:17:59 ID:YmyCnwZP
>>269
やっぱそうっすか...
一生お目にかからないような漢字が大量にはいってるので
誤変換混じるかもとか思うとちょっと憂鬱...
271NAME IS NULL:2005/06/09(木) 11:00:06 ID:???
ベタ変換した後に該当の文字コードだけフロントエンドか何かで変換してやってください
272NAME IS NULL:2005/06/09(木) 21:47:52 ID:76l8WePU
RedHatLinux8、Postgre8で環境作ってます。
WinマシンからAccessでリンクテーブルを張ろうとすると、テーブル選択画面
が表示されるタイミングでサーバーのターミナル画面にエラーが表示されます。
(msysconfテーブルがありません、みたいな内容です。あるわけねぇだろ)
これって普通のことでしょうか?リンクテーブルはちゃんと作成できます。

あと、PGADMINでサーバーを追加しようとすると「PostgreはVer7.3以上でない
とダメ!」と表示されます。ちゃんとVer8なのに。是非とも対処法をご教授
ください。宜しくお願いします。
273NAME IS NULL:2005/06/13(月) 12:19:53 ID:???
>>272

>RedHatLinux8
なんでまた。見たところ開発・テスト環境なんだろ?
ES・ASなり、オープンソースの互換ディストリビューションで
動かしたら?
Red8じゃ試してみようって気にもならないよ。
274NAME IS NULL:2005/06/13(月) 15:43:08 ID:???
>>272
ここでmsysconfやaccessを探せば解決するかも
http://ml.postgresql.jp/pipermail/pgsql-jp/
275NAME IS NULL:2005/06/13(月) 16:08:15 ID:???
>>273
そうかもしれんが、OSに依存した問題では無いのでは?
276NAME IS NULL:2005/06/13(月) 17:34:27 ID:???
>>273ですが、
>>275
と、諭されてしまったので調べてみましたよ。

RedhatES2.1
PostgreSQL 8.0.1(rpm)
Access2002SP3

ふつーにインストールして、DB作ってテーブル作って
アクセスからリンク。・・・できますた。
コンソールには特に何もエラーは表示されないです。
リンクテーブルからデータの追加・更新・削除もできます。
そーだ、ODBCドライバは7.01.00.06日本語版です。

pgAdminはX入れてないから勘弁な。
277NAME IS NULL:2005/06/15(水) 00:18:49 ID:???
それ答えになってるのかな・・・
278NAME IS NULL:2005/06/15(水) 09:04:35 ID:???
じゃあ、お前が調べろよwww俺は面倒しぃ(・ω・)
279NAME IS NULL:2005/06/15(水) 09:57:57 ID:???
>>276
キミはイイヤツ
280NAME IS NULL:2005/06/15(水) 17:28:00 ID:JbFI81w8
SQLServerだと@、MySqlだと?で指定するようなパラメータクエリって
postgreではどうかけばいいんですか?
281NAME IS NULL:2005/06/15(水) 21:35:39 ID:fPHLLEmJ
272です。皆様、温かいレスポンス、ありがとうございます。

依然、解決にはいたっておりません。お察しのとおり開発・テスト
環境です。クライアント(WinXP)にはODBCドライバ7と8が入って
おります。一応、データソースは8を利用して作っております。
7を削除したほうが良いんでしょうかね・・・。削除できるんで
しょうか・・・。
今日、サーバー側で「ALTER TABLE foo ALTER COLUMN c TYPE int」
を実行したらエラーになりました。TYPEの近くでパーサーがなんとかって。
ネットで見つけた文法なんですが。型の変更さえ出来ないなんて・・・。

282NAME IS NULL:2005/06/16(木) 09:24:47 ID:???
>>281
ネットでみつけるまえに、\h ALTER ・・・
で調べたほうが早い。
で、そのpsql 古くないか?
最初から古いPostgreSQLがインストールされてんじゃないの?
283NAME IS NULL:2005/06/16(木) 19:16:59 ID:/f9b3kKU
質問なんだけどPostgresってoracle見たいにヒントって与えられないよね?
使うインデックスを指定したいんだけど方法ある?
284NAME IS NULL:2005/06/17(金) 02:56:40 ID:uu7yAD+1
cygwinで使おうと思ったら
shared memory segmentがなんちゃらかんちゃらって
エラーが出るんだけど・・・
etc/systemを書き換えればいいって検索したらあったけど
そもそもそんなファイルもフォルダーもないよ
一体どーしたらいいの?
285NAME IS NULL:2005/06/17(金) 09:55:18 ID:???
なきゃ作れ
つか、/etc/cygserver.conf じゃなくて?
286NAME IS NULL:2005/06/17(金) 15:00:50 ID:???
SQLインジェクション対策のため、
;で繋げた複数のSQLを禁止したいのですが、
それってPostgreSQL側の設定じゃ無理?
287NAME IS NULL:2005/06/17(金) 15:51:57 ID:???
そのSQLはどっから投げるのさ
288NAME IS NULL:2005/06/17(金) 16:21:13 ID:???
289NAME IS NULL:2005/06/17(金) 16:47:31 ID:???
>>287
PHPやPerlから実行します
もちろんアプリケーションレベルでセキュアなのが望ましいのですが、
人間が作るので100%はないでしょう

>>288
ありがとう、検討してみます。
でもうまく設定しないと、正常通信にも影響を与えそうですね。
290NAME IS NULL:2005/06/18(土) 15:20:36 ID:???
シータは変わった。
パズーがそう感じ始めたのはいつ頃からだったろう。
シータと暮らし始めて1年、確かに今でも彼女は聡明で優しく誰よりも可愛い女の子だ。
しかし、初めて彼女と出会い海賊達と冒険を繰り広げたあの時とは明らかに何かが
変わってしまった。
こんなことがあった。
いつものようにシータが夕食の準備のために、台所で忙しげに立ち働いていた時のことだ。
何か手伝いでもしようかとパズーはゆっくりと台所へ歩み入り、シータの背中に声をかけ
ようとした。
とその時、シータの尻のあたりから「ブーッ、プス〜ッ」と大きな音がした。
パズーは突然のことに驚きその場に立ちすくんでしまったが、シータはそんなパズーに気付く
こともなく、また放屁を恥じるような様子もなく調理を続けていた。
シータだって人間だ。放屁もするだろうし、一人でいる時にいちいち周りに気を遣うような
仕草をすることもないだろう。それが当たり前だ。
しかし、それなら1年前の彼女はどうであったろう?
ドーラ一家の船で一緒に過ごした頃のシータは、決して放屁などしなかったのではなかったか?
放屁を全くしない人間なんて存在しないことをわかっているはずなのに、パズーにはなぜか
あの頃のシータが一人きりでいる時でさえ1度も放屁をしたことがないと確信できたのだ。
291NAME IS NULL:2005/06/18(土) 17:25:01 ID:EMBLVldB
わたしだけ…(だいたひかる風?)
psql 8.0.3 for windowsに\hなどと入れると
'more' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
といってコマンドプロンプトでmoreされるのは。
292NAME IS NULL:2005/06/18(土) 17:36:53 ID:nw/gqsGi
狂気の法案を拉致問題の安部晋三先生と阻止しよう!!【■■2ちゃんねるが消滅します】

とんでもない言論弾圧法案=「人権擁護法」が国会に提出されようとしています!!!
この法案の真の狙いは、
@社会的には、2ちゃん/ブログをはじめとしたネット世界の一般人の小うるさい言論の圧殺であり、
A政治的には、拉致問題強硬派&在日参政権反対の自民右派の消滅です。
民族(朝鮮・中国・韓国)/ 同和 /信条(宗教・層化・赤化)他に関する一切の差別的発言を禁じるという狂気の法律です。

この法律の前例の無い恐ろしい特徴は、特定人に関する言動は当然、不特定多数の集団に関する一般的発言
(朝鮮人は〜〜と書くこと)までも圧殺しようとする点にあります。
◆違反者には、無令状捜索・差押、出頭要求、矯正教育が待っており、それを拒否すると、
さらに罰金30万&氏名・住所などの全国晒し上げを食らう(61条)という仰天内容です。

一刻も早く、防戦する安部先生達に、日本国民の怒涛の援護射撃をお願い致します!!!
※※以下5つともアドレス中に★をはさんであります、★を消去の上、どうか必ずご覧下さい!!※※ 
http://zinkenvip.fc2web.co★m/
http://blog.livedoor.jp/no_gest★apo/
http://blog.livedoor.jp/monste★r_00/
↑↑【凶悪法案の問題点&背景の全て】
http://www.kantei.go.jp/jp/forms/goik★en.html
↑↑【首相官邸ご意見フォーム】イメージと違って、ここは非常に効果ありです!
全部読んでくれます、投稿テーマで返事が変わります!
http://meyasu.jimin.or.jp/cgi-bin/jimin/mey★asu-entry.cgi
↑↑【自民党目安箱】事態は急を告げています。文章は簡単でいいので、国民の「人権擁護法」への反対意思を、
とにかく 1 秒 も 早 く 党本部に伝えて下さい!
■□■人権擁護法ストップin日比谷公会堂 6/19(日)12:30〜16:00・無料・超大物国会議員登場・皆さん大挙してご参加を!■□■
293NAME IS NULL:2005/06/20(月) 10:28:21 ID:FNdJiACZ
LinuxにPostgreSQLをインスコかまそうとしているのですが、
公式のDLサイトがみな氏んでいるようなのですが・・・。
誰か接続できる方おいでじゃないですか。
294NAME IS NULL:2005/06/20(月) 12:37:54 ID:???
>>293
逆引きできてないだけだろ、
ネタでやってるなら耳から脳みそ吸い出すぞ
295NAME IS NULL:2005/06/20(月) 12:42:26 ID:???
            /\
      /\  /__\ 
    /__\ |´ < ` |    呼んだ?
     | ´ ゝ` | 彡πヾ⌒i 
    /彡πヾ\    | |
    /    / ̄ ̄ ̄ ̄/ |
  __(__ニつ/ mind  / .| .|____
      \/  flayer / (u ⊃
296NAME IS NULL:2005/06/21(火) 16:38:08 ID:???
現在DB接続時にhost=localhost user=postgresで接続しているのですが
この記述を変更せずにlocalhostのpostgresへの接続をhost=db1にフォワード
したいのですが可能でしょうか?
297NAME IS NULL:2005/06/21(火) 18:32:28 ID:???
localhost上に、stone や usogres や pgpool を置くというのはダメ?
winだとstoneしか選択肢ないけど
298NAME IS NULL:2005/06/21(火) 19:01:37 ID:If/sDIju
pgcluster を試していて、下記のような構成になっています。

クラスタDB1(マスター) 1台
クラスタDB2(スレーブ) 1台
レプリケーションサーバ 1台

更新は全てマスターからしか行わないので、各クラスターDBの
cluster.conf の <When_Stand_Alone> は read_write にしています。
この状態で、レプリケーションはうまくいっているのですが、
クラスタDB2のサーバがダウンしたと仮定して、クラスタDB2で、pg_ctl -o "-R"
を行うと、rsyncでクラスタDB1(マスター)からデータベースが正常にコピーされ
クラスタDB2 の postgres が正常に起動するのですが、レプリケーションサーバ
からクラスタDB1(マスター)へのロック (template1)が解除されないため
リードオンリーの状態になってしまいます。

クラスタDB2(スレーブ)が復旧した場合、動的に解除されないのでしょうか?
299NAME IS NULL:2005/06/21(火) 19:06:47 ID:???
>>297
どれか使えそうです。ありがとうございます。
300NAME IS NULL:2005/06/22(水) 04:23:26 ID:hqpCe2Fo
せっかく一部上場に勤めてるのに内職バレてクビだなんて馬鹿だね。
301NAME IS NULL:2005/06/22(水) 12:14:08 ID:???
>>296
delegateとか
302NAME IS NULL:2005/06/23(木) 06:26:37 ID:/3jyU9SL
質問させてください。
7.4.8を使用してます。

クライアントからインターネット越しにCSEで接続してます。

ある程度時間をおいてから
SELECT文などを発行すると

SQL実行中に以下のエラーが発生しました。
pqFlush() -- couldn't send data: errno=0
No error

となってしまい実行できません。
1度切断して再度接続すると正常に使えます。

サーバからタイムアウトによって切断されてるんだと思うのですが
一定時間操作がない場合の強制切断ってサーバ側の
設定値でありましたでしょうか?
よろしくお願いします。
303NAME IS NULL:2005/06/25(土) 03:42:47 ID:lAVQPOOq
PostgreSQLユーザの方はMySQLと比べて
PostgreSQLを選んだ理由はなんでしょうか?
MySQLの方が性能が良いと聞きますし、
機能的には最近はあまり差がないように思います。
PHPの書籍だとたいていMySQLがセットで説明されるように
なってるのを見てちょっと疑問に思ったのです。
304NAME IS NULL:2005/06/25(土) 04:08:19 ID:???
>>303
> 機能的には最近はあまり差がないように思います。

逆に言うと最近まで差があったということだよね。
質疑応答スレなどではサブクエリが使えないってよく見るし。
あと性能って速度的にと言うことだと思うのだけど、
ベンチマークサイトでよく見る単純なSQLじゃなくて、
せめて複数のテーブルを結合したり、相関サブクエリとか集約関数を
使ったものがあってもいいカナと思ったりする。
#あまりベンチマークを気にしていないので、知らないだけかもしれないが。

俺がPostgreSQLを使い出したのは偶々で、ただ単にMySQLより早く
使う機会が訪れただけなんだけどね。

いc氏に聞けば、「ライセンス問題」って言うだろうな。
305NAME IS NULL:2005/06/25(土) 11:49:38 ID:???
昔は日本語対応その他の問題でPostgresの方が良かった。
そのままずっと使ってる。
306NAME IS NULL:2005/06/25(土) 19:18:57 ID:nB8glhnj
insertした項目のserial型の値が取得したいんだけど
どうやればいいかな?
@@identityみたいなのがあればいいんだけど
307NAME IS NULL:2005/06/25(土) 19:38:02 ID:???
>>306

insertしたときに返ってくるoidを条件に使ってselectする。
308NAME IS NULL:2005/06/25(土) 19:40:32 ID:nB8glhnj
>>307
レスありがとう
でも、oidってのがわからないのと
insertしても値がなにも返ってこないんだけど・・・

ちなみにodbc接続なんだけど問題ある?
309306:2005/06/25(土) 19:43:45 ID:nB8glhnj
あ、oidはわかったけど
insert時に取得する方法がわからないよ・・・
310NAME IS NULL:2005/06/26(日) 00:14:33 ID:???
Pg.pmをインストールするための環境変数をセットする場所が
どうしてもわかりません。

具体的には
POSTGRES_HOME
POSTGRES_LIB
POSTGRES_INCLUDE
なのですが、postgreSQLのインストール方法が不明であるため、
わからない状態です。(管理者が逃亡してしまいました。。

OSは、FreeBSDです。
postgreSQLのインストール方法は不明です。
ソースからコンパイルのではないようで、はじめから入っていたもの
っぽいです。

ご教示いただけますと幸いです。
宜しくお願いいたします。
311NAME IS NULL:2005/06/26(日) 00:26:03 ID:???
>>306
SELECT currval('sequence_name');
312NAME IS NULL:2005/06/26(日) 02:06:39 ID:???
insert時の自動付与のsequenceをcurrvalでチェックだと、insert処理の
集中時に違う番号呼び出す可能性が高いよ。
sequenceはトランザクション関係なしでnextvalで1つ数が上がるから、
自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。
313NAME IS NULL:2005/06/26(日) 02:32:17 ID:???
>>303
MySQLのGPL+独自ライセンスは扱いにくい
商用ライセンス購入以外だと基本的にビジネスには向かない
314NAME IS NULL:2005/06/26(日) 02:36:08 ID:???
>>312
> 自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。

同一セッションなら最後のnextvalで取得した番号が出る。
裏(=別セッション)には影響を受けない。
影響を受けるのはlast_value
315NAME IS NULL:2005/06/26(日) 02:42:51 ID:???
ちょっと修正。
> 同一セッションなら最後のnextvalで取得した番号が出る。
同一セッションの最後のnextvalで取得した番号が返る。
316303:2005/06/26(日) 04:33:53 ID:UgDLxZtU
>>304>>305>>313

皆さんご意見ありがとうございました。

最近MySQL関連のニュースとか書籍とか多くなって気になってましたので・・・。

PostgreSQLでぜんぜん十分使えるから問題ない、むしろMySQLのほうが
ライセンス絡みで扱いにくいってことなんですね。
317NAME IS NULL:2005/06/26(日) 04:39:33 ID:???
>>316
まあ、このスレだから、ってことも考慮した方がいいと思うよ。
実際に業務でだってバシバシ使っているところはたくさんあるんだし。

俺は、なんとなくPostgreSQLが好きだからって理由だけだなあ。
318NAME IS NULL:2005/06/26(日) 12:39:54 ID:???
俺はどっちもつかってるが、postgresのほうがインストーラの親切さでユーザーに好かれてるぞ
MySQLの最新版はこの1年ほど日本語が通らなかったのでそれではなれた人もいるし
正式版でてからでもあきらかなバグも大量に

MySQL4.1出る前はWindowsに対応していないPostgreSQL8.0もでてないので
DBのためだけにLinuxのマシン立ち上げるのたるいという話はよくあったが
今ではそれもなく8.0は7.xとは別次元の性能のよさだし

速度的にはどっちも大きい差はないな
Windows版でメリットのあったMySQLは4.0までと思っていいよ
4.1でてからのMySQLの書籍も日本語部分だけは言葉濁しているばかりで萎えた

あとはドライバとか含めて選定したほうがいいよ
俺はJDBC使ってるがPostgresのほうが日本語周りはあたまええな
319306:2005/06/27(月) 12:24:52 ID:IP5+4BWP
>>311
ありがとう、コピペしてみたんだけど動かなかったよ
sequence_nameには別の文字が入るのだろうけど、少しググってもわからなかった
itemテーブルのid列がserial型だった場合どういう値を書けばいいのか教えてください
320NAME IS NULL:2005/06/27(月) 12:42:59 ID:???
\ds
321NAME IS NULL:2005/06/27(月) 15:35:53 ID:???
データが入ってないブランクテーブルのフィールド名を得る方法があれば教えてくさい。
322NAME IS NULL:2005/06/27(月) 15:38:41 ID:???
>>321
いや、、、何を使ってだい
やり方はいくらでもあるが、条件絞ってくれないと
323NAME IS NULL:2005/06/27(月) 18:44:26 ID:???
手元にpgのdumpファイルがたくさんある。日単位で2年分ぐらいだ。
で、それら全部から特定のテーブル分のデータだけ削除したい。

おしえてままん、、、
324NAME IS NULL:2005/06/27(月) 19:21:21 ID:???
>>323
dump形式がテキストなら、
適当にsed(なんでもいいけど)とかでcopyとかcreate tableのところを
削除すればいいんじゃないの?

バイナリなら知らね。
restoreしてdropして再dumpするスクリプト書くとか。
325NAME IS NULL:2005/06/27(月) 20:13:36 ID:???
>>302
うちも同じ状況
切断される時間を計ったけど
いまいちはっきりしない

回線品質が悪くてそうなるんだと思う
ADSLとかじゃない?
326NAME IS NULL:2005/06/28(火) 00:19:23 ID:???
グチりに来てみた。
FedoraのFC4でPostgreSQLを入れようとしたら、yumのやつが、
v8.0.3だったんでyumで入れた。
ついでにpgAdminも入れておこうと思って、同じようにyumでpgAdminを入れた。
すると、つながらん。
調べてみると、yumのpgAdminは、v1.0.2なんで、pgsqlのv8.0以上のには、
つながらんらしい。(pgAdmin >= 1.2.0)

って、おい...
327NAME IS NULL:2005/06/28(火) 07:33:57 ID:???
>>325
NATタイマーじゃないの?
328325:2005/06/28(火) 09:28:59 ID:???
>>327
NATタイマ?
ローカルのルータの設定?
見てみまーす
329NAME IS NULL:2005/06/28(火) 12:21:45 ID:???
PuTTYのSSH経由で接続して
一定時間ごとにダミーパケットを投げるオプションをつけるとか
330325:2005/06/28(火) 14:39:24 ID:???
>>327
ルータの設定を見たところ300秒になってました
実験したところちょうど5分前後で切断されてるようで
設定を変更したところ切断されなくなりました。
ありがとうございました

>>329
そんなことができるんですか
確かにSSH(TeraTerm利用)は以前も切断されませんでした
調べてみますー
331NAME IS NULL:2005/07/09(土) 13:41:54 ID:IOHw8tbN

【動作環境】
Redhat Linux 9
postgresql-8.0.2

【クエリ】
select name from act_info where name = 'きよみ';

【結果】
きよみ
ひとみ
ナオミ
すみこ
ひとみ
ひろみ
かずみ
アオイ
レイコ
さとみ
さとみ
かおり
あゆみ

【質問】
ななな、なんでこうなるのでしょう?「きよみ」だけ選びたいのに他3文字
の名前も選択されてしまいます。頭がおかしくなりそうです、助けてください。

332NAME IS NULL:2005/07/09(土) 13:44:02 ID:???
333NAME IS NULL:2005/07/09(土) 13:47:57 ID:IOHw8tbN
>>332
サンキュウサンキュウ読んでみます。どうもありがとう!
334NAME IS NULL:2005/07/09(土) 17:07:14 ID:ZAESD3uG
質問があります・・・

あるテーブル(aaa)のカラム(b)があります。
このbは登録した日時です。
例えば、2005-06-01

で、現在の日時と比べて何ヶ月たっているかを
postgresのみで対応したいのですが、
どうすればよいでしょうか?
結果としては、いまだと1が帰ってきて欲しいのです。
335NAME IS NULL:2005/07/09(土) 19:50:57 ID:???
>>334
SELECT extract('mons' from age('2005-06-01'::date));
336NAME IS NULL:2005/07/11(月) 11:43:04 ID:D4fxVleQ
335様
ありがとうございました。
337NAME IS NULL:2005/07/11(月) 20:36:17 ID:TWcPxtp0
SELECT文で作成した行数が同じテーブルを下記のようにJOINできますか?

  あああ  いいい            ううう  えええ
ーーーーーーーーーーーーー       ーーーーーーーーーーーーー
   A    B              C    D
  AAA  BBB            CCC  DDD


から

  あああ   いいい   ううう   えええ
ーーーーーーーーーーーーーーーーーーーーーーーーー
   A     B     C     D
  AAA   BBB   CCC   DDD

初心者なので優しくお願いします。
338NAME IS NULL:2005/07/11(月) 21:47:16 ID:???
>>337
出来ないくはないが、簡潔な安定した解が出てこない。
それぞれ別に取って、ホスト言語で処理した方がよさそうかな。
339NAME IS NULL:2005/07/11(月) 21:54:29 ID:???
>>337
そんな処理をしないといけないような作りが
根本的に間違ってないかな?

行数じゃなくて
A 、B と C、D との関連が何かあるんだろ?
その関連を使ってJOINするのが普通であり
そうでない作りは作り方が間違ってます
340337:2005/07/11(月) 22:55:01 ID:TWcPxtp0
やっぱりおかしいんですね。こういうやりかた。ぐすん。
本当にやりたいことは、下記のテーブルの報告書の部分の空欄に、関連する申請書からデータを取ってきて、
申請書・報告書の一覧表示をしたいのです。

申請or報告  番号  所属  代表者  タイトル   申請・報告日   コメント  対応する申請書の番号
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
  申請    1  ○○    山田  あいうえお  2005-07-11   忙しい      
  申請    2  △△   田中  かきくけこ  2005-07-12   寂しい      
  報告    1                  2005-07-12   楽しかった    2
  報告    2                  2005-07-13   助かった     1

ってテーブルを下記のように表示したいんです。


申請or報告  番号  所属  代表者  タイトル   申請・報告日   コメント  対応する申請書の番号
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
  申請    1  ○○    山田  あいうえお  2005-07-11   忙しい      
  申請    2  △△   田中  かきくけこ  2005-07-12   寂しい      
  報告    1  △△   田中  かきくけこ  2005-07-12   楽しかった    2
  報告    2  ○○    山田  あいうえお  2005-07-13   助かった     1

この報告の空欄部分をうまく埋められないんです。ぐすん。
ホスト言語で処理したらソーティングが難しくなりますよね。
なんかいい方法を教えてください。
341NAME IS NULL:2005/07/11(月) 22:57:28 ID:EZKsIbwG
windows でpostgres8をインスコしようとしたら
initdbでエラーが発生します。
なぜでしょう?
342NAME IS NULL:2005/07/11(月) 23:10:37 ID:???
>>340
この例なら "番号" と "申請or報告" から引けるんじゃないの?

select B.所属, B.代表者, A.* from 報告申請テーブル as A
 inner join 報告申請テーブル as B on (A.番号 = B.番号) and (A."申請or報告" = '申請');

343337:2005/07/11(月) 23:36:27 ID:TWcPxtp0
皆さんありがとうございます。
明日がんばってみます。
344337:2005/07/14(木) 21:24:25 ID:F92/ySMm
>>342
こんな感じで、
select B.申請or報告, B.番号, A.所属, A.代表者, A.タイトル, B.申請・報告日, B.コメント from 報告申請テーブル as A
 inner join 報告申請テーブル as B on (A.番号 = B.対応する申請書の番号) and (A."申請or報告" = '申請');
報告のテーブルをセレクトし、申請のテーブルとユニオンし、目的のテーブルを得ることができました。
ありがとうございました。
うまくいったのでSQL8級ぐらいになった気がします。
それでは
345NAME IS NULL:2005/07/16(土) 00:24:36 ID:MJ7AHnoJ
.Net Data Provider Npgsql って品質はどんなものでしょう?
346NAME IS NULL:2005/07/16(土) 14:01:16 ID:???
データベースのテーブルからER図作成してくれるソフトって何かないかな?
DBDesignerはPostgreSQLに対応してないんだよね
347NAME IS NULL:2005/07/16(土) 14:22:02 ID:???
ODBCでなんとかなるよ
348NAME IS NULL:2005/07/16(土) 14:50:53 ID:???
>>346
すげー!こんなソフトがあったのか。
http://forza.cocolog-nifty.com/blog/2004/10/er_dbdesigner.html

来週ODBCで繋いで動かしてミル
349NAME IS NULL:2005/07/16(土) 16:05:10 ID:???
>>347
ODBCでやってみたんだけどリレーションうまく取得できなかったんだよね
設定の問題??
350NAME IS NULL:2005/07/17(日) 07:05:49 ID:05OPVd2h
既出なのか?
タイトル
PostgresSQLってなってるけど・・・あれでいいのか?
351NAME IS NULL:2005/07/17(日) 12:20:54 ID:P0/lgAy0
>>8にて指摘済

まぁPostgersのSQLのスレくらいに思っていると気にならん。
352NAME IS NULL:2005/07/21(木) 13:50:22 ID:xc+8JesH
項目名 属性
ID  text(PK)
名前  text
番号  integer default 0
住所  text
というテーブルに insert into テーブル名 values('1','hoge','','tokyo');
というSQL実行するとエラーになる。
integer項目にdefault 0を設定しておけばNULLをインサートすると0値が評価される
と思ってた。
NULLを入れようとしたらdefault 0で設定した0値が自動的に入る方法ってないの?
誰か教えてちょ。
353NAME IS NULL:2005/07/21(木) 13:58:44 ID:???
PostgreSQLでは''はnullじゃないと思われるがどうか
354NAME IS NULL:2005/07/21(木) 14:04:32 ID:???
>>352
NULLと''(空文字)は別だぞ。
そのSQLだとINTEGER型のカラムに空の文字列を挿入していることになる。
で、NULLを挿入するとデフォルト値が入るようにするにはRULEを使えばできるが、
どのみち空文字を判定してNULLに置き換えるのなら、DEFAULTに置き換えた方が早いわな。
INSERT INTO Table VALUES('1','hoge',DEFAULT,'tokyo');
355NAME IS NULL:2005/07/21(木) 14:45:56 ID:???
こんな調子だと SELECT するときにも where 番号 = NULL でひっかからない
とかになりそうな悪寒

当然 IS NULL で評価
356NAME IS NULL:2005/07/21(木) 14:53:46 ID:xc+8JesH
>>354
ありがとね。
そのSQLすんげぇ〜参考になった。確かに0値が評価された。
・・・が、ひょっとしら使わないかも。。。
忙しいところ すまんかったね。でもサンク。また一つ賢くなった。
357NAME IS NULL:2005/07/21(木) 15:02:00 ID:xc+8JesH
>>353
礼いうの忘れてた。
''ってNULLじゃないって今回はじめてわかった。サンク

>>356
も三区。でもさすがにその悪寒はないな。
でも、俺の場合「where 番号 = NULL でひっかからない」とかになっても
さすがにここに書き込むほどじゃぁないな。といいつつ小一時間ほど悩んだりして

気をつけます。
358NAME IS NULL:2005/07/21(木) 15:03:27 ID:xc+8JesH
もういっちょ

>>357内の>>356じゃ無くて >>355ね。
359NAME IS NULL:2005/07/21(木) 20:41:47 ID:???
ESM for PostgreSQLが本家にマージされないかなあ。
PowerGresに金払うのが惜しいわけじゃないけど対応プラットフォームが
WindowsとLinuxだけなのは寂しい。
360NAME IS NULL:2005/07/21(木) 21:42:26 ID:???
現役で金ズルでしょうからマージされるわけない
スタレたらマージされるかもしれんけど
361NAME IS NULL:2005/07/22(金) 12:02:13 ID:???
いろいろ検討してるんだけど、Solaris に対応して無いものが
結構多いんだよな。
362NAME IS NULL:2005/07/24(日) 11:09:34 ID:???
Fedora Core 4で8.0.3がインストールされています。
まだデータベース自体は全く弄ってません。
下のように設定が書いてあって、rootユーザーで
psql -lとすると、下のエラーが出ます。
これって設定がうまくできてなくて、
rootというデータベースユーザーでログインしようとしてしまってるという事でしょうか?
何か解決の糸口みたいなものがあれば、教えてください。

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


pg_hba.conf

host all all 127.0.0.1/32 ident sameuser
host all all ::1/128 ident sameuser
local all all ident testmap

pg_ident.conf

testmap root postgres
363NAME IS NULL:2005/07/24(日) 11:25:05 ID:???
解決しました。

pg_ident.confにマップが定義してあったら、
psql -lとかやったときに勝手にpostgresユーザーになると思い込んでたけど、
-U postgresと指定する必要があっただけでした。
すいません。
364NAME IS NULL:2005/07/25(月) 20:24:51 ID:???
SQL文でつまったので質問させてください

UPDATE TableA INNER JOIN TableB WHERE TableA.id = TableB.id
SET TableA.Name = TableB.Name
みたいなSQLを書きたいのですが
Postges風に書き直すとどうなるのでしょうか?
365NAME IS NULL:2005/07/25(月) 20:29:09 ID:???
>>364
UPDATE TableA SET Name = TableB.Name FROM TableB WHERE TableA.id = TableB.id

かな。
366364:2005/07/25(月) 20:35:57 ID:???
>>365
できた!ありがとう

ちょっと特殊なSQLの書き方のような気がしたんだけど
他のDBだとどんな感じなのかな

今までMS製のしかほとんど触ったことなかったからちょっと気になる
367NAME IS NULL:2005/07/27(水) 18:25:49 ID:???
test
368NAME IS NULL:2005/07/27(水) 18:32:39 ID:???
ヒント:SQL92
369NAME IS NULL:2005/07/27(水) 18:38:22 ID:???
ちょっと教えてください。

COPY ... FROM ... で、CSVファイルからインポートする時に
カンマで区切られた空のフィールドをNULLとして認識させることってできますか?

↓4番目のカラムにNULLと認識させたい・・・
1,2,3,,5

どなたかよろしくお願いします。
370NAME IS NULL:2005/07/28(木) 14:58:20 ID:???
テキストファイルだし、スクリプトか何かで加工してはどうか
371NAME IS NULL:2005/07/28(木) 20:57:59 ID:???
>>359

ESMの元になってるSymfowareってロックベースの並行性制御じゃなかったっけ?

ハマれば速いかも知れないけど、使い方が難しそうな悪寒
372NAME IS NULL:2005/07/29(金) 11:21:29 ID:???
>>370
> テキストファイルだし、スクリプトか何かで加工してはどうか
サンクス 試してみます。
373NAME IS NULL:2005/08/02(火) 21:25:45 ID:wkDyDL84
Redhat enterpriseに、8.0.3を入れ、
ローカル環境では一通りSQL操作ができることを確認しました。
んで、他のマシン(192.168.***.***)からも使えるようにと、
pg_hba.confに、

host all all 192.168.***.***/32 trust

と付加し、RedHatのFirewallに5432ポートの穴を空けたんですが、
他マシンからpsqlでアクセスしても、

psql: could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "192.168.@@@.@@@" and accepting
TCP/IP connections on port 5432?

なんて表示されちまいます。
設定ミスってますかね?
374NAME IS NULL:2005/08/02(火) 21:43:09 ID:???
>>373
postgresql.confのlisten_addressesかな。
しかし、これで引っかかっている場合
そゆエラーメッセージじゃなかったような気もする。
ちゃんと穴が空いているか確認も必要かも。
375NAME IS NULL:2005/08/02(火) 21:54:47 ID:???
>>373
メニューからセキュリティレベルを開いて、
その他のポートとしてTCPの5432を追加
376NAME IS NULL:2005/08/02(火) 23:08:59 ID:7fcOfF8A
メールを使うだけでお金が貯まる!
http://osaifu.com/?mitan69
377373:2005/08/03(水) 00:17:16 ID:???
>>374
d。確認してみます。

>>375
d。メニューって、どのツールのメニューになりますか?
378377:2005/08/03(水) 09:34:15 ID:???
原因判明しますた。
インストールしたままの状態だったpostgtes.confを確認したら、
listen_addressesとportがコメントアウトされてた。。。orz
吊ってきます
379NAME IS NULL:2005/08/03(水) 23:35:43 ID:???
portはデフォルトの5432のままでいいからコメントアウトされててもいいんだよ
listen_address は、デフォルト127.0.0.1だから、*とかに変更しないとだめ。
380NAME IS NULL:2005/08/04(木) 22:21:58 ID:???
JavaからJDBC経由でPostgresSQLを使う場合に
〜.sqlのようなファイルに書かれてるSQLを
psqlのバッチ処理のような形で実行することは可能ですか?
Java側からファイルを開いて、一件ずつ実行してくしかないでしょうか?
知ってる人いたらお願いします。
381NAME IS NULL:2005/08/04(木) 23:32:12 ID:???
一件づつ実行ったってすぐじゃん。

String s;
BufferedReader r = new BufferedReader(new FileReader("hoge.sql"));
Statement stmt = connection.createStatement();
while((s = r.readLine()) != null){
  stmt.addBatch(s);
}
stmt.executeBatch();
382NAME IS NULL:2005/08/05(金) 02:21:33 ID:???
もしくは標準入力からくわせてやっていいんじゃねーの?
383NAME IS NULL:2005/08/05(金) 12:25:00 ID:???
>>381,382
サンクス。やってみます。

384NAME IS NULL:2005/08/07(日) 15:02:04 ID:fNLDemHQ
Linux AS2.1上でPostgresを複数ユーザへ利用開放させる様な設計を考
えております。ユーザ1、ユーザ2を作り、それぞれのOwnerでDB
(DB1:Ownerユーザ1、DB2:Ownerユーザ2)を作りました。
しかし、他OwnerのDBに接続し、勝手にCreate tableできてしまう事がテ
ストしてわかりました。pg_hba.conf でパスワード認証(md5)等を利用して
も、結局、接続ユーザをPwdを再確認するだけで、他OwnerのDBには接
続、CreateTableできてしましました(Select等は当然できませんが。。。)
実際にやりたいことは、DBのOwner+Postgresユーザのみ接続可能なDB
を作りたいのです。これはPostgresSqlの仕様なのでしょうか?またOracle
等では、DB単位にユーザ接続認証がかけれるのでしょうか?
385NAME IS NULL:2005/08/07(日) 15:19:50 ID:fNLDemHQ
>384です。
補足ですが、Oracleだとインスタンス単位にIP/PWDで認証できますが、
あの様な形を理想としています。
386NAME IS NULL:2005/08/07(日) 15:21:20 ID:fNLDemHQ
>384です。
IP/PWD ⇒ ID/PWD です。
はぁ、疲れてるなぁ・・・

387NAME IS NULL:2005/08/08(月) 10:31:47 ID:???
すみません。ちょっと質問させてください。
だいぶ前にlinuxにPostgreSQLを入れたんですが、ちょこっと設定して後放置してました。
今になってまたいじろうと思って起動させたんですが、
サービスを開始中・・・・・・・・・・[失敗]
と出ます。
参考にしているサイトは起動しないことを想定してないので、対処に困っています。
ちなみに、# /etc/rc.d/init.d/postgresql start でやったんですが・・・
よろしくお願いします。
388NAME IS NULL:2005/08/08(月) 12:58:19 ID:I4XsyEpH
すみません。psqlをWindowsで使おうとしていて、Cygwinをダウンロードして
ipc-daemonを起動して、postmasterをpostmaster -iで起動させると
Segmentation falut (core dumped)
とエラーがでてしまいます。postmasterの起動方法に問題があるのでしょうか?

389NAME IS NULL:2005/08/08(月) 17:34:33 ID:???
>>388
バージョン教えてください。
390NAME IS NULL:2005/08/08(月) 18:02:35 ID:???
>>384
インスタンスでわける形態であれば、portを変える事で
同じことができます。
DBひとつでやりたいなら、pg_ident.conf併用が使えると思います。
391NAME IS NULL:2005/08/08(月) 18:04:06 ID:???
>>387
エラーの詳細はわかりませんか?
syslogや、-lオプション等で出せると思うのですが
392NAME IS NULL:2005/08/10(水) 04:18:42 ID:???
教えてください。
FedoraCore2でPostgres8.0を使っていますが、
EUC−SJIS間の自動文字コード変換がどうしても理解できません。

これは結局、TELNET等で接続をする場合はCLIENT_ENCODINGの設定によって
OSのデフォルトエンコーディングの違いを気にすることはない、
CGI、PHP、JAVA等でwebアプリを作る場合は、プログラムでFORMから受け取った
データをDBの文字コードに変換する必要がある、ということでいいのでしょうか?

393NAME IS NULL:2005/08/10(水) 10:12:39 ID:???
>>392
CLIENT_ENCODINGを設定すれば、DB側で勝手に変換してくれるってことだ。
それが、telnetだろうが、Webアプリのスクリプトであろうが同じ事。
例えば、SJISなユーザ入力をWebアプリ側で全く変換せずにそのまま
DBに渡す場合は、CLIENT_ENCODINGをSJISに設定しておけばいい。

とは言うものの、普通はDBとスクリプトの内部コードは同じ(例えばEUC)にしておき
HTTP入出力だけSJISにしたい場合は、スクリプト側で変換することになると思う。
DBとスプリクトのコードが違う場合は、それぞれの環境によって違うだろうけど、
DB接続時にSET CLIENT_ENCODING しておいてDB側で変換するほうが、
後々の環境変化などにも対処しやすくて、楽だとは思うけどね。
394NAME IS NULL:2005/08/10(水) 15:47:20 ID:???
javaからやるときゃ、UNICODE指定したほうが楽
395392:2005/08/10(水) 18:58:55 ID:???
>>393 >>394
お返事ありがとうございます。
もう少しお付き合いいただけますでしょうか。

DBがEUC、スクリプトもEUCで
Webアプリへの入力が、Linux(EUC)とWindows(SJIS)という場合は、
WebアプリでSJISの入力のみをEUCに変換しなければならないのでしょうか?
396NAME IS NULL:2005/08/10(水) 20:48:30 ID:???
>>395
そういうことなんだが、なんでWindowsがSJISになる必要があるん?
携帯ならわかるけど。
って、LinuxとかWindowsってのはクライアント側のブラウザが動いている
環境のことを言っているのだととったのだが...
と、スクリプト言語は何よ。
397NAME IS NULL:2005/08/10(水) 23:18:41 ID:???
>>395
Webアプリの場合にはWebサーバが指定された文字にエンコードしたりデコードしたりしてくれている
例えばPHPのようなスクリプトはそもそもEUC-JPじゃないと上手く日本語の混じったスクリプトが
実行できない場合がある、PostgreSQLもEUCに設定してあるなら全てEUCで統一すりゃいいんじゃない?

あと、DBが変換してると思っているようだけどDBは変換しませんよ
例えばODBC接続の場合ODBCドライバーが変換してDBと通信してくれてるだけ
libpqを使う場合も同様でlibpqの関数をコールする時に文字コードを指定して変換してます
だからスクリプトでも必然性があって文字コードを変更したいなら独自に変換する必要ありです
398NAME IS NULL:2005/08/10(水) 23:19:24 ID:???
>>394
UNICODEにしたらDBサイズが大きくなりすぎ
399NAME IS NULL:2005/08/10(水) 23:34:03 ID:???
>>397
> あと、DBが変換してると思っているようだけどDBは変換しませんよ

>>393,396なんだけど、postgresqlには、
SET client_encoding = 'EUC-JP';
というような"SQL文"があるので、DB側で変換してくれていると思っていたのだが、
違うのか?
DBのバックエンドが変換しているのではなくて、フロントエンドに組み込まれたlibpqで
変換しているのか?
libpq側で変換すると言うのならpostgresql.confでもclient_encodingを指定できると言うのも、
おかしいと思う。
400NAME IS NULL:2005/08/11(木) 10:58:54 ID:???
オレもバックエンドだと思ってたが。
odbcでも、接続時に SET CLIENT_ENCODING 発行してるだけだし。

>>398
いや、client_encoding がunicode
DBのencodingはEUC_JP
401NAME IS NULL:2005/08/12(金) 00:26:07 ID:???
ttp://ns1.php.gr.jp/pipermail/php-users/2005-May/026153.html バックエンドだろ
確かにlibpqでも指定はあるけど、これはバックエンドにエンコードのタイプを渡してるだけ
402NAME IS NULL:2005/08/14(日) 00:31:11 ID:???
すみません

今CでSELECTした結果を表示するプログラムを作っているんですが、
varachar型の列は表示できるんですが、numeric型のデータが正しく取れません

例えばテーブルが

    date   | num
-----------+----
2005-08-13 | 3770

として、

char *date;
int *num;

中略

chart = (char *) PQgetvalue(res, 0, 0);
num = (int *) PQgetvalue(res, 0, 1);

とかやると、dateは正しく取れるんですがnumが何故か147078503となってしまいます
char *num とすれば文字列として取れるんですが、、、

何がいけないんでしょうか?
403NAME IS NULL:2005/08/14(日) 00:47:47 ID:???
int * がいけないんじゃないのかな。
404402:2005/08/14(日) 01:10:18 ID:???
う・・まじすか?
テーブルのデータ型が何であろうと文字列で返ってくるんですか?
atoiすりゃおkっすかね、、、

ぶっちゃけC初心者なもんで
出直してきます
405NAME IS NULL:2005/08/14(日) 02:20:01 ID:???
atoiはエラー判定できないので、strtolがお勧めです。
406NAME IS NULL:2005/08/14(日) 15:33:04 ID:???
>>404
ライブラリで型変換させると実装がめんどくさいからね。
ユーザプログラムには全て文字列で渡すのが一番。
407NAME IS NULL:2005/08/14(日) 21:18:35 ID:???
でも転送量が増えて損した気分。
408NAME IS NULL:2005/08/14(日) 22:09:56 ID:???
>>407
そこで、ギガビットイーサかファイバーチャネルで接続ですよ
無意味に早いですよ、お客さん
409NAME IS NULL:2005/08/17(水) 03:17:29 ID:???
こんばんは、質問します。

plpgsqlを使用しているのですが
引数から取得した列でORDER BYをしたいのですがうまくいきません。
WHEREのときは引数から取得した文字列、数字で検索できたのに
ORDER BYではうまくいかないのでしょうか?
410NAME IS NULL:2005/08/17(水) 12:57:57 ID:???
>>409
引数から取得した値でORDER BY???

意味が分かりません、引数で並び替えする意味もわかりません
テーブル内の項目を書くべきでは?

実際に書いたSQLを教えてください
411409:2005/08/17(水) 13:39:32 ID:???
PHPとPostgresで作成しています。
引数で並び替えする理由はPHPで表示された画面から
データが表示され、テーブルに対応した列をクリックすると
その列でソートするような画面を作りたかったからです。
ストアドは動的なhtmlコードを返しています。
引数には列名がはいってきます。

このような感じです
postgresのバージョンは7.4.6です。

わかりにくい説明で申し訳有りません。

CREATE OR REPLACE FUNCTION func_hoge(
character varying
) RETURNS text
AS '
sort_name ALIAS FOR $1;
txt text := '''';
BEGIN

txt := ''htmlコードを記述'';
FOR rec IN SELECT * FROM hoge.t_hoge ORDER BY sort_name LOOP /* ←ここで列を固定したくないので引数を入れると言う事です */
/* データの中身を表示 */
END LOOP

RETURN txt;

END;
' LANGUAGE 'plpgsql';

412NAME IS NULL:2005/08/17(水) 14:12:14 ID:???
>>409
一旦動的にSQL文を生成してから実行すればいい。
前後は略すけど、

query := 'SELECT * FROM Table ORDER BY ' || $1;
FOR list IN EXECUTE query LOOP
RETURN NEXT list ;
END LOOP;

っと、行をそのまま返すわけじゃなさそうだが、適当に弄ってくれ。
413409:2005/08/17(水) 14:23:04 ID:???
ありがとうございます
試して見ます
414409:2005/08/17(水) 14:36:32 ID:???
うまくいきました。感謝します、勉強になりました。
415NAME IS NULL:2005/08/17(水) 19:11:58 ID:jqWoVyiv
どなたか助けてください。
PostgreSQL 7.3 で作ったデータベースがあったのですが、
間違ってシステムごと消してしまいました。
OS は FedoraCore Linux 2 でした。
バックアップなどをいろいろ探したら、
/usr/local/pgsql/data
だけ見つかりました。
そこで、VinelinuxにPostgreSQL 7.3.10 をインストールして
上記のdataディレクトリをVinelinuxの
/usr/local/pgsql/data
に置きました。そして、
$ psql -l my_db
などとするのですが、そんなデータベースは無いと言われてしまいます。
どこか見直す所はありますか?どこを変更すれば読めるのでしょうか。
お願いします。
416NAME IS NULL:2005/08/17(水) 22:53:07 ID:???
無理っぽいですなぁ
そもそも postgresqlは起動できてますか?
普通はpg_dumpとかpg_dumpallでバックアップしてないと
無理なわけですけど、諦めきれない?
417NAME IS NULL:2005/08/18(木) 02:40:04 ID:???
>>415
まず、vineにインストールしたまっさらのPostgreSQLの起動確認。
$ psql -l
templete系データベースが表示されますか?
されたら、PostgreSQL停止
$ /usr/local/pgsql/data /usr/local/pgsql/data.bak
でdata以下を移動

Fedoraの/usr/local/pgsql/dataをVineの/usr/local/pgsql/dataへコピー。

/usr/local/pgsql/data以下のパーミッションが/usr/local/pgsql/data.bakと同じか確認。
同じことを確認して、confファイルが、現在の環境に沿っていることを確認。
上記に問題なければPostgreSQL起動。

$ psql -l

で、全部見えたらラッキー。
418415:2005/08/18(木) 07:24:01 ID:0C+UOkYY
>>416
あきらめきれません。
>>417
confファイルですね。確認します。

data/ 以外に設定ファイルはありますか?
419NAME IS NULL:2005/08/18(木) 12:10:37 ID:???
>>418
へんなことしてなきゃdata/の下だけのはず。
420NAME IS NULL:2005/08/18(木) 15:39:40 ID:???
バックアップも取ってないヤツに限ってあきらめがわるい、自業自得
421NAME IS NULL:2005/08/18(木) 15:42:03 ID:???
同じバージョン、同じCPU、同じOSなら
普通にディレクトリ data 以下のコピーだけで
データ使えるけどなあ
422NAME IS NULL:2005/08/18(木) 15:43:33 ID:???
ああ、OS違うのか。
どうしても駄目なら、前のOSインストールして
ダンプしてもってくればいいじゃん
423NAME IS NULL:2005/08/18(木) 17:13:48 ID:???
ミスってシステム消したくせに
違うOSでチャレンジしようなんて
デンジャーな人だ
普通は同じOSで同じ
バージョンでって考えるよね
やっぱデンジャーな人だ
424415:2005/08/18(木) 22:01:17 ID:0C+UOkYY
data/ 以下を置き直して、
$ psql my_db
としたらpgsqlというユーザーが無いとか言われました。
ユーザーの情報ってどこに書き込まれていますか?
データベースはpgsqlというユーザーで作りました。
425NAME IS NULL:2005/08/18(木) 22:59:25 ID:???
>>424
もう、金払ってSRAにでも頼め。
426NAME IS NULL:2005/08/18(木) 23:11:43 ID:???
>>424

技術系のMLとかで質問するためのプロトコルを身につけろ。
あせっているのはわからんでもないが。

まず、せっかく>>417が手順を提示してくれた訳だが、それを正しく実行したのかどうかも怪しいな。

自分がどのような確認手順を踏んだ結果、psqlを実行してみてもダメだったと言うことを書く。
その手順に間違いがないかをまず検証してもらう。
confファイル類を提示して検証してもらう。
そういうことをしなさい。

お前さんのみたいに結論だけ書いたってまともに相手してもらえんよ。
元々間抜けな自体を引き起こした奴が復旧作業をまともにできるとは皆、思ってないし。
作業手順に間違いが無いわけがないとみんな思っているのだから、答えは得られんよ。
仮に答えてくれようとする人がいたとしても、お前さんのコミュニケーション手法では救援不能。
427NAME IS NULL:2005/08/19(金) 01:14:37 ID:???
パーミッションって言葉が彼に理解できるのか分からないけど
コピーした data/ のパーミッションは大丈夫なのか?を確認したりしろ

又は、金払う勇気があるなら俺がやってやってもいいけど
連絡のしようがないね(^^;
428NAME IS NULL:2005/08/19(金) 01:50:34 ID:???
>>427
>コピーした data/ のパーミッションは大丈夫なのか?を確認したりしろ

>>417が書いてくれているけど、きちんとやってなさげ
429415:2005/08/19(金) 22:55:50 ID:Hy2uYA9e
皆さんのおっしゃる事はいたいほど良く分かります。
いろいろ試行錯誤して、また考え直してで直します。
430NAME IS NULL:2005/08/20(土) 00:04:24 ID:U69PZWNJ
★緊急ニュース★

韓国からの抗議により、Googleの「日本海」の表記が「東海」に変更されました。


↓↓↓詳しくはコチラ↓↓↓↓

【Google】チョンの抗議によって「日本海」から「東海」に変更
http://ex11.2ch.net/test/read.cgi/news4vip/1124460460/l50

この件についてのまとめサイト
http://wiki.livedoor.jp/vippers1/

抗議メール等、ご協力お願いします
       ~~
       ↑
       重要
431NAME IS NULL:2005/08/20(土) 11:20:03 ID:???
>>429
大丈夫。
data以下が残っていれば、おそらく復旧できるよ。
落ち着いてゆっくりがんばれ。
432NAME IS NULL:2005/08/20(土) 12:16:50 ID:???
>>429
試行錯誤はともかく、作業の記録はするように。
何をやってどういう状況かを報告して、助言を貰うためには必要。
それをしなければ、時間の無駄だから。
433NAME IS NULL:2005/08/20(土) 18:45:04 ID:???
1.目的
2.やったこと
3.結果
最低でもこの3つを書いてくれないと答えようもない
特に結果は細かくかいてくれないとね
エラーメッセージは確実にコピペ

これが守られないと質問に答える側にストレスたまりまくる

怯んで、試行錯誤してから質問しますなんて言わずに
テキパキ片付けようや
434NAME IS NULL:2005/08/21(日) 16:28:55 ID:???

              ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃 ∧_∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  試行錯誤の結果まだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .PowerGres.   |/
435NAME IS NULL:2005/08/21(日) 20:38:15 ID:???
あきらめました。MySQLに以降します。
436NAME IS NULL:2005/08/22(月) 02:27:38 ID:???
>>434
その箱w
437NAME IS NULL:2005/08/22(月) 22:41:29 ID:???
初心者とかを猛攻するのよくないと思う
438NAME IS NULL:2005/08/23(火) 01:43:37 ID:???
>>437
言葉はきついかもしれんが、スルーもされず、必要な手は差し伸べられていると思うけど?
みんな貴重な人生の時間を無償で提供してくれようとしてくれているのに、これ以上何を望む?
439NAME IS NULL:2005/08/25(木) 11:51:55 ID:OOhU0d1m
教えてください。

hoge1というテーブルに
field1 serial型
field2 text型(でもなんでもいいけど)
のフィールドを持っていて、

insert into hoge1 (field2) values ('ほげほげ');

を実行した結果、filed1に入る値を調べるのはどうすればいいですか。
field2はユニークではないので、
select field1 from hoge1 where field2 = 'ほげほげ';
とはいかないのであります。

maxを使うと、排他制御されていない環境では値がずれるような気がしますが、
どうですか。
440NAME IS NULL:2005/08/25(木) 11:53:06 ID:OOhU0d1m
>439
綴り間違いました。
> を実行した結果、filed1に入る値を調べるのはどうすればいいですか。
field1です。
441NAME IS NULL:2005/08/25(木) 12:10:22 ID:???
>>439
insert into hoge1 (field2) values ('ほげほげ');
select currval('hoge1_field1_seq');
442NAME IS NULL:2005/08/25(木) 12:59:40 ID:OOhU0d1m
>441
ありがとうございました。簡単にできてしまいました。
443NAME IS NULL:2005/08/25(木) 17:04:41 ID:???
>>442
簡単にできてしまいました・・・
444NAME IS NULL:2005/08/31(水) 22:19:52 ID:+ooZCo2X
2つの関係をもつテーブルにデータを挿入したいのですが、手順で悩んでます。
親テーブルに新規データ挿入して、そのプリマリキーの値を子テーブルに持たせようと思うのですが、
挿入した行を取得するのはどうやればいいでしょうか?
挿入直後に問い合わせするのも同時に他の情報が挿入されたらだめだし。
皆さんどうやってますか?
445444:2005/08/31(水) 22:30:02 ID:???
すいません。自己レスです。
解決しました。
CURRVAL使えばいいんですね。
失礼しました。
446NAME IS NULL:2005/09/01(木) 21:42:32 ID:qS5UgNij
いきなり質問ですみません。
pg_dumpされたデータをmysqlのdbにrestoreするにはどういう手順がベストでしょうか?
447NAME IS NULL:2005/09/02(金) 02:16:08 ID:???
>>446
それってリストアじゃなくてインポートとかって言うんじゃない?
しかもスレ違いな質問なわけだが・・・
MySQLの load data infile 〜 辺りでpg_dumpからデータをエディタで切り出して
CSVファイルとしてインポートすりゃいいじゃん
あとはMySQLスレで質問しれ!!
448NAME IS NULL:2005/09/02(金) 09:29:43 ID:0wkqYTTf
教えてください。
redhat8.0でpostgre8.0.3をインストールしたんだけど
postmasterすると

FATAL: unrecognized configuration parameter "p_socket"

ってエラーがでてしまうのです。なんででしょう?
449NAME IS NULL:2005/09/02(金) 16:34:40 ID:Y8O46j/m
PostgreSQLに対応しているSQLクライアントを探しています。
・Windows Nativeでないこと(当方MacOS X ユーザ)。PureJavaアプリでも可。
・SQLが実行できること
・フリーウェアであること

Googleで探したんですが有償のものが多いようです。良いものがありましたら教えてください。
450NAME IS NULL:2005/09/02(金) 16:48:46 ID:???
451NAME IS NULL:2005/09/02(金) 17:16:38 ID:???
SQL実行したいだけならNetBeansとか
452449:2005/09/03(土) 10:15:25 ID:fKAdJmY4
>>450、451 ありがとうございます。
DBInspectを試しました。いい感じです。単機能ですが私には十分です。
453450:2005/09/03(土) 17:15:07 ID:???
>>450
どういたしまして
やっぱ日本語は化けるよね?
454NAME IS NULL:2005/09/04(日) 02:32:34 ID:5jQ/fXCk
Debianの画面をポスグレ使ってOS X v10.3.5に表示させたいのですが、
Macにはポスグレの7系と8系どちらをインストールしたほうがよいでしょうか?
よろしければお教えください。
455NAME IS NULL:2005/09/04(日) 11:27:57 ID:???
PostgreSQLにキレた事はありますか?
456NAME IS NULL:2005/09/04(日) 13:03:56 ID:???
>>449
もう遅いかもしれないが
http://squirrel-sql.sourceforge.net/
457NAME IS NULL:2005/09/04(日) 16:05:57 ID:???
>>454
貴方がご質問された内容は理解できません
ご質問内容をご確認の上、再度お書き込みください
458449:2005/09/04(日) 18:02:32 ID:???
>>456
どうもありがとうございます。こちらも試してみます。
>>453
日本語は大丈夫なようです。PostgreSQLのエンコードがUNICODEなんですが…。SJISとかは試してみません。
459NAME IS NULL:2005/09/05(月) 08:09:08 ID:???
7.3を使ってるのですが、Mysqlでいう@hogeのようなユーザ変数ってないんでしょうか?
460NAME IS NULL:2005/09/07(水) 04:07:07 ID:Ew4HgFdN
Mac OS X 10.3 においてポスグレのアカウント設定の仕方教えてください!
461NAME IS NULL:2005/09/07(水) 23:21:19 ID:???
462NAME IS NULL:2005/09/08(木) 19:20:42 ID:CAYWQITv
#include <stdio.h>
#include <libpq-fe.h>

int main(){
char *out, *out2;
size_t outsize, out2size;

out = PQescapeBytea("\\", 1, &outsize);
printf("escape result = %s\n", out);

out2 = PQunescapeBytea(out, &out2size);
printf("unescape result = %s\n", out2);
}

これを実行すると

escape result = \\\\
unescape result = \\

となりますが、unescape result = \ を期待していたのに
なんで unescape result = \\ となるんでしょうか?
463NAME IS NULL:2005/09/08(木) 20:06:03 ID:1MBlROU2
ここでPosgreの質問をしてもいいのだろうか?
許されるなら以下質問。
Ver7以前のDBからエクスポートで作られたdmpファイルを
Ver8のWin版でインポートしたいのだけど、
そもそもWin版ってどうやってコマンドで動かすの?
suで入るのとかどうやるんでしょ?
464NAME IS NULL:2005/09/08(木) 22:20:31 ID:???
>>463
runas /env /user:postgresのログイン名 cmd でコマンドプロンプトを開いて
後はpsqlコマンドでホゲホゲ。
でも pgadmin III でやる方が楽でないかい?
465困ったちゃん:2005/09/14(水) 19:35:18 ID:iP7kyEwM
すいません。質問させて下さい。
PostgreSQL8.0.3でSQLのDistinctとGroup by句が正常に効きません。
不具合なのでしょうか。それとも何か設定漏れ関係なんでしょうか・・
何か情報をお持ちの方おりましたらご教示願います。m_~_m

○環境
・Windows2000 Server
・サーバ側のキャラクタセット UNICODE
・サーブレットのSQL結果表示を見ると、重複で帰ってきます。
・isql で確認しても同様です。

○これまで調べた結果
・例えば次のSQLで重複で帰ってきます。以下例です。
create table samp (fld1 varchar(20));
insert into samp values ('aaa');
insert into samp values ('bbb');
insert into samp values ('あああ');
insert into samp values ('aaa');
insert into samp values ('あああ');
 select distinct fld1 from samp;
⇒ 5件返る時もあれば、3件、4件で返る時もあります。
   魔可不思議です。
・エンコードを代えて確認しましたが、UNICODEが原因ではないような
 気がします。
・他のテーブル、データの格納状況によって、distinctやgroup byが
 効いたり効かなかったりします。
 よって、再現性の規則性が今一つつかめません。

○回避方法
・代替案がなくて困っています。SQLを変える分にはある程度構わないと
 思っているのですが、システムのDBアクセス後のアルゴリズムを変える
 のはちょっと避けたいです。

○前提
・できればWindowネイティブの8.xを使いたいのですが。。

以上
466NAME IS NULL:2005/09/14(水) 19:41:51 ID:???
>>465
varcharだからじゃないかな。text使えって言われるけど。
467困ったちゃん:2005/09/14(水) 19:54:37 ID:iP7kyEwM
>>466
早速のアドバイス恐れ入ります。
ある意味常識でしたか!?
早速各テーブルを一律、varchar→text に変えて再確認してみます。
468NAME IS NULL:2005/09/14(水) 20:14:59 ID:???
>>465
initdb時にロケール指定をしていないとそんな現象になる。
initdb時のパラメータに --no-locale を付けてやればオケ。
469困ったちゃん:2005/09/14(水) 22:58:53 ID:iP7kyEwM
>>465
アドバイスありがとうございます。(>>467)

結果をご報告します。

○varchar→text に変えてみたのですが、解決しませんでした。

○initdb時の--no-locale相当を実施したところ、解決しました。
 アドバイスありがとうございました。
 実施した際のポイントを一応列挙します。
 ・最終的にPostgreSQL8.0.3のWindows版を一旦削除して再インストールしました。
  (設定変更で解決するかいろいろ試したのですが、途中で諦めました。)
 ・再インストールでは、途中の画面でロケールを何らか指定しないといけないので、
  'C'を選択しました。(エンコードは'EUC-JP'を選択。)
  ※ネットで調べたら'C'を推奨するようなサイトを見つけたので。
 ・create database 以降の手順は前回と同様のことを実施しました。
 ・結果、文字列項目に対してdistinctやgroup byが正常に効くように
  なりました。

以上です
470468:2005/09/14(水) 23:27:57 ID:???
>>469
オメ。--no-locale と --locale=C は同じなんで問題ない。
Postgresをアンインストールしなくても、以下の手順で可能なので参考までに。

1) 必要に応じて既存のデータベースをダンプ
2) Postgres停止
3) 既存のデータベースを削除
4) runas /user:Windowsに登録されたPostgresアカウント名 cmd
5) 新しくコマンドプロンプトが開くので以下で新データベースを作成
  initdb --encoding=EUC-JP --no-locale -UPostgres管理ユーザー名 -D"データベースディレクトリ"
6)必要に応じてデータベースをリストア
471NAME IS NULL:2005/09/15(木) 02:06:27 ID:???
>>465
心配になってその現象気になったからやってみたが
おかしい動きはないな

ロケールはデフォのままいじってないけどデフォはCだったかな
472困ったちゃん:2005/09/15(木) 10:18:23 ID:PJIIm2yU
>>470
ご親切にアドバイスありがとうございます。
>>471
今回の現象で、恐らく少なくても次の状況が揃うと、SQLでDistinctやGroup by句
が機能しなくなる可能性(規則性のない再現性)があると考えます。
・Windows版のPostgreSQL8.0,3をインストール
 (プラットフォームはWindows2000、XPの両方)
・initdb相当で、ロケールを'Japanese_Japan'を設定
・エンコードは'EUC-JP'でもそれ以外でも発生
・createdb相当で、エンコードは'EUC-JP'でも'UNICODE'でも
 恐らく何でも発生

つまり、>>468 のご指摘の通りであります。
他のネットで調べても、initdb相当で何らか指定(Windowsネイティブ版の
場合、何らか指定しないと前に進まない)しなければなりませんが、
デフォルトの'C'以外を選択すると、後々今回のようなある意味根本的な
問題に遭遇してしまうようです。

知っている方にとっては承知のノウハウかもしれません。^_^;
そうでない方は十分にご注意ください。

以上
473NAME IS NULL:2005/09/19(月) 09:37:54 ID:u76UAZtR
OSXにPostgreをインストールしようと格闘中です。
readlineをインストールをしようと
$ sudo /sw/bin/fink install readlineと打つと
WARNING: You are using a version of gcc which is known to produce incorrect output from C++ code under
certain circumstances.と表示されます…
gccのバージョンを下げたりしたら良いのでしょうか?ちなみに、
gccとgcc-3.3の2つがありどちらも
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)
と表示されました。
どなたか対処法をお教えください。

474NAME IS NULL:2005/09/19(月) 09:40:16 ID:???
posgre関係ないじゃん。
OS×スレ池よ。
475NAME IS NULL:2005/09/20(火) 11:22:16 ID:???
>>472
Win版8.0だからじゃなくて、7.xの後半くらいから
そういう仕様だったよ。
もちLinux版でな。
俺の場合、order byも正常動作しなかった。

よっぽどの理由が無い限り--no-locale = --local=Cは必須。
476NAME IS NULL:2005/09/20(火) 11:52:57 ID:C7LOo69J
phpPgAdminのテーブル一覧にあるEstimated Row Countって何の項目ですか?
477NAME IS NULL:2005/09/20(火) 15:14:56 ID:???
PostgreSQLでOracleのPipeline表関数に相当する機能ってあるの?

[参考URL]
表関数/パイプライン表関数 - ざんげの部屋
ttp://pukiwiki.postcle.com/zange/index.php?%C9%BD%B4%D8%BF%F4%2F%A5%D1%A5%A4%A5%D7%A5%E9%A5%A4%A5%F3%C9%BD%B4%D8%BF%F4
※URL折れたらスマソ
478NAME IS NULL:2005/09/20(火) 15:35:53 ID:???
質問age
479NAME IS NULL:2005/09/20(火) 20:20:20 ID:???
avgで平均値だすと小数点以下がやたらとたくさんでてくるのですが、
1桁に制限したいと思ってます。

select numeric(5,1) avg(hoge) from ...

みたいにしたらエラーになってしまいますが、何かいい方法は
ありませんでしょうか?
480NAME IS NULL:2005/09/20(火) 20:36:48 ID:???
>>479
SELECT avg(hoge)::numeric(5,1) FROM foo;
481NAME IS NULL:2005/09/20(火) 21:12:31 ID:???
>>480
でキタ━━━━(゚∀゚)━━━━ッ!!
ありがとう。ホントにありがと〜
482NAME IS NULL:2005/09/22(木) 19:14:46 ID:1TmFXkZ4
Fedora core 3
PostgreSQL 8.0.1
の環境で、windowsからCSEで接続しようとしています。(イントラネット)
PostgreSQL 8系にはtcpip_socketの項目が設定ファイルにないのですが、
どの項目を設定すればよいでしょうか
483482:2005/09/22(木) 19:19:07 ID:???
connectDB() -- connect() failed: No error
Is the postmaster running (with-i) at '192.168.33.10' and accepting connection on TCP/IP port '5432'
このようなエラーがでます
484NAME IS NULL:2005/09/22(木) 19:30:52 ID:???
listen_addressesに変更になった。
"tcpip_socket postgresql 8.0" でググればすぐ判るはずだが。
485NAME IS NULL:2005/09/22(木) 21:12:39 ID:???
listen_addresses='*'にしましたがだめです。
486484:2005/09/22(木) 21:37:11 ID:???
>PostgreSQL 8系にはtcpip_socketの項目が設定ファイルにないのですが、
>どの項目を設定すればよいでしょうか
と聞かれたからlisten_addressesに変更になった、と答えただけなんだが。
だから
>listen_addresses='*'にしましたがだめです。
と一行レスを付けられてもね。。。
どうして欲しいのボク?あめ玉でも買って欲しいのかい。
487NAME IS NULL:2005/09/23(金) 00:37:45 ID:wjUJneLB
>>473
finkじゃなくて、
http://www.entropy.ch/software/macosx/postgresql/
にあるパッケージじゃだめ?
488NAME IS NULL:2005/09/25(日) 01:47:45 ID:Ss0s7ZjX
外部キーとして参照されているカラムを持つテーブルがあります。
このキーが実際に他のテーブルのレコードから参照されているかどうかを知る方法はありますか?

もう少し詳しく言いますと、テーブル FKTBL のカラム FK は、他の複数のテーブルの外部キーとして設定されています。
この FK は、もしかしたらどのレコードからも参照されていないかもしれませんし、複数のレコードから参照されているかもしれません。
しかしだれからも参照されていない FKTBL のレコードは不要なため削除したく、それを実現するためのSQLを考えています。

普通に考えれば、外部参照しているテーブルの not in なりをひたすら条件に書いていくところなのでしょうが、
もっと簡単で効率的な方法はないかと思いまして、ここで質問しました。
単に
 DELETE FROM FKTBL;
とだけやって、消せるのだけ消してしまうようなオプションなどがあるのであればそれでもOKですが、どんなもんでしょう?


489488:2005/09/25(日) 03:20:17 ID:Ss0s7ZjX
ちょっと追加します。
方法として、できれば参照元テーブルやカラムの具体名を書かない方法があるととても具合がいいです。
たとえば、FKTBL の FK を外部キー参照しているテーブルとカラムの一覧を取得して、それから動的にSQLを
生成する、といった感じです。
動的にSQLを作るのは他のプログラミング言語を使いますので、FKTBL の FK を外部キー参照している
テーブルとカラムの一覧を取得する方法はあるか、ということになるかと思います。
490NAME IS NULL:2005/09/25(日) 17:46:00 ID:???
これまでMySQLを使ってましたが、PostgreSQLもやろうと思ってます。
参考になるサイトや本を探してますが、お勧めはありますか?
MySQLの時、初めて買った本が、rootで動かしたりするようなもので、
サンプルも後から見ると無駄な感じのものだったりして、変な癖が
付いてしまいました。それで最初が大事だということを痛感しました。
Googleでも探して上から見てますが、上の方に参考にすべきでない
サイトが出ても自分では判断できないので、ここで尋ねてみました。
491NAME IS NULL:2005/09/25(日) 19:34:47 ID:???
質問お願いします。
PostgreSQLをコマンドラインで操作した時のcallBackメッセージ
"DELETE 2" "UPDATE 1"
とかをPHPからの接続で取得するにはどうすればよいでしょうか?
492NAME IS NULL:2005/09/25(日) 21:00:38 ID:???
>>491
DELETE された行数や UPDATE された行数だけが知りたいというなら、pg_affected_rows でいいんじゃないかな?
影響を受けた行数が返ってくる。
メッセージそのものを取得する方法は知らない。
493491:2005/09/25(日) 21:09:24 ID:???
>>492
"DELETE 0" "UPDATE 0" のように
影響を受けた行数が0のケースを分岐させたかったので
pg_affected_rows でOKでした。
ありがとうございました。


494NAME IS NULL:2005/09/26(月) 00:44:13 ID:???
>>490
PostgreSQLはマニュアルの日本語訳がオンラインで読めるはず。
本はインストールの話ばかりそれ以外であまり役に立つとは思えない。
495488:2005/09/26(月) 00:57:41 ID:???
自己解決です。
システムテーブル pg_constraint を引くことにより、あるカラムを外部キー参照しているカラムを取得することができました。
お騒がせしました。
でも、もし外部キー参照されうるレコードのうち実際に参照されていないレコードを削除する簡単な方法があるようでしたら、
教えていただければと思います。
496NAME IS NULL:2005/09/26(月) 12:31:29 ID:???
>>490
少し前のWeb+DB Pressに、
MySQLとPostgreSQLのどちらかを使える人のための使い方説明
みたいな特集があったよ

バックナンバーあさってみ
497409:2005/09/26(月) 18:23:11 ID:T5OWSnyg
質問です。
他のアプリからデータをコンバートしたいので
text型でテーブルに入れました。これを既に型の決まっている他のテーブルに流し込むSQLを書きたく(ストアドでもOK)
insert-select文を作っているのですが
例えばintegerの型にcast(field as integer)としても元のフィールドのところにcastできない型が来た場合に
エラーとなってしまいます。

integer以外のデータが来た場合はそのフィールドは無視してinsertしたい場合にはどのように記述すれば良いでしょうか?
498NAME IS NULL:2005/09/26(月) 23:57:49 ID:zavpfg2j
▼と▽というtextが混在する列で、select * from hoge where foo = '▼'; とすると、▽もでてくる。
日本語だからか・・・
499NAME IS NULL:2005/09/27(火) 00:05:23 ID:???
>>498
独り言みたいだが、反応しとく。
>>468-472 を参考。
500NAME IS NULL:2005/09/27(火) 00:10:40 ID:???
>>499
サンクス。気付よ俺
501497(497のときの名前は忘れてください):2005/09/27(火) 01:43:04 ID:???
case when と http://oshiete1.goo.ne.jp/kotaeru.php3?q=1597026 を
参考にして解決できました。 掲示板汚し失礼しました
502NAME IS NULL:2005/09/27(火) 10:44:01 ID:jV9Mpaom
カラムの型変更って出来ますか?
503NAME IS NULL:2005/09/27(火) 10:55:31 ID:???
1つの操作で既存の2列の型を変更します。
http://www.postgresql.jp/document/pg803doc/html/sql-altertable.html
より
ALTER TABLE distributors
ALTER COLUMN address TYPE varchar(80),
ALTER COLUMN name TYPE varchar(100);
504NAME IS NULL:2005/09/27(火) 10:58:10 ID:???
>>503
ありがとうございました。勉強します。
505NAME IS NULL:2005/09/27(火) 11:01:21 ID:???
マニュアルも読まないクソが勉強しますっても白々しいだけ。
506NAME IS NULL:2005/09/27(火) 11:32:19 ID:???
>>505
使用しているverが7.21だったのでtypeはなかった。
renameしてadd後、移動します。
507NAME IS NULL:2005/09/27(火) 12:48:28 ID:idbZC1J9
http://developer.apple.com/internet/opensource/postgres.htmlを参考にして
postgreのインストールまでは出来ました
 しかし、コマンドサーチパスや環境変数の設定などがよくわかりません。
export PATH=$PATH:/usr/local/pgsql/binというのはviなどで.bashrcに書き加え
たらいいのだろうと思っているのですがファイルが見つかりません…ファイルの
ありかを教えてください。それと、その場合はroot、user、postgresのどれで
ログインして書き加えたらよいのでしょうか?

ちなみに
 OS (Mac OS X v10.3)でPostgre7.4をインストールしました。
508NAME IS NULL:2005/09/27(火) 22:27:21 ID:DDRYEveA0
最近MysqlからPostgresに移行をしたのですが、
Mysqlにあった「show status」と同等のコマンドなどはあるのでしょうか?
http://dev.mysql.com/doc/mysql/ja/show-status.html

WEB等でいろいろ探してみたのですが、見つかりませんでした。
識者の方、よろしくお願いします。
509NAME IS NULL:2005/09/27(火) 22:53:18 ID:???
「統計情報収集器」で探すが良かろう。
510NAME IS NULL:2005/09/28(水) 03:24:18 ID:???
copy ... from で日本語を含んだファイル名を指定すると file not found になるんですが、
これを回避する方法はないでしょうか。

\copy や copy ... from stdin で流しめばできるのですがサーバ側でやらせたいもので。
511508:2005/09/28(水) 11:53:41 ID:U+ILpcZz
>>509
ありがとうございます!!見つかりましたー。
これから、いろいろと弄ってみます。
感謝!感謝!!
512NAME IS NULL:2005/09/29(木) 02:04:17 ID:CGGxEeuL
select ... where field='に';
を実行するとfield='の'の項目まで検索されてしまうのですが,何故でしょうか?
正常に動いている方の環境では正しく検索されますか?

--no-localeしていなかったことに気がつき,postgresql.confの
lc_* = 'C'に設定したあと,
dropdb
/etc/init.d/postgresql restart
createdb
して再度テーブルを作り直しましたが,直りませんでした.

解決策やヒントがあればアドバイスお願いします
513NAME IS NULL:2005/09/29(木) 10:25:03 ID:???
>>512
--no-locale は postgresql.confでは書きかえれない項目もあったはず。
initdb --no-locale からやり直し。
514NAME IS NULL:2005/09/29(木) 10:37:20 ID:???
PostgreSQL8.0.3で、いちばん手っ取り早いパフォーマンスの
向上設定って、どんなんでしょう?
マシンスペックは上げずに。
515NAME IS NULL:2005/09/29(木) 11:05:01 ID:???
>>514
"-O2"オプションつけてコンパイルする。
Shared Memoryを多めにとる。
516NAME IS NULL:2005/09/29(木) 11:19:07 ID:???
>>515
レスありがとうございます。
手順的には、
(1) pg_dumpでバックアップ
(2) 再コンパイルして再インストール
(3) バックアップしたDBをリストア

って感じでよいでしょうか?
517NAME IS NULL:2005/09/29(木) 11:38:11 ID:???
>>516
pg_dumpallのほうがよかったような・・・
詳しくは以下をどうぞ。
http://www.postgresql.jp/document/pg800doc/html/backup.html#BACKUP-DUMP-RESTORE
518NAME IS NULL:2005/09/29(木) 13:58:40 ID:???
>>517
なるほど、pg_dumpallですね。
ありがとうございますた!
519NAME IS NULL:2005/09/29(木) 19:18:10 ID:???
postgresの機能で帳票作って使ってる人っています?
520NAME IS NULL:2005/09/30(金) 01:35:08 ID:???
>>514
コンパイルより先に、Shared Memoryを多めにとるの方をやったほうがよくないか?
521NAME IS NULL:2005/09/30(金) 18:20:26 ID:CBPENad1
5000万件くらいのアクセスログデータの加工・集計したいんだけど、
やっぱpostgresじゃムリポ?
OracleにSAS被せるしかないんかな?
522NAME IS NULL:2005/10/01(土) 11:14:14 ID:???
そんなん件数だけで判断できるわけがない。
パフォーマンスの話じゃなくてシステム的な制約、問題等についてならば、
とりあえず延べレコード数20億までなら問題は生じないと考えて良い。
523NAME IS NULL:2005/10/01(土) 13:46:28 ID:???
ログデータだと汎用RDBではなくて自作したほうが速度的にいい場合も多いよ
並列度合いを簡単に最適化できるしね
524NAME IS NULL:2005/10/01(土) 15:04:31 ID:???
つミ awk
525NAME IS NULL:2005/10/01(土) 15:24:00 ID:???
awkerの俺に言わせていただくと、その件数はちょっときつい
DBで扱えるならそっちがいいんじゃないかなー
526NAME IS NULL:2005/10/01(土) 15:57:14 ID:???
>>521
参考にならないと思うけど
毎日2000万件くらいのApacheのログを
すっげーショボいマシンのMS SQL Serverに突っ込んでいろいろやらされてるから
いまどきのマシンにPostgres入ってるなら大丈夫じゃね?
527NAME IS NULL:2005/10/01(土) 16:35:31 ID:???
ログデータの変換→登録に時間がかかるから、RDBの方が余計な処理が多いだろ。
そのデータを何度も使い回すなら、DBに登録する価値も出てくる、かも知れないが。
その場合であっても、RDBじゃなくてDBMでの実装を先に考えた方がいいのでは?
まずPerlなどで作ってみて、テスト。
その後、Cで作り直すか、RDBMSに頼るか判断してみれば?
528NAME IS NULL:2005/10/01(土) 17:16:59 ID:???
Cで作り直すかRDBMSに頼るかって、...選択肢としておかしいだろう。
529521:2005/10/03(月) 11:10:32 ID:X8D6IlXJ
みなさん、ありがd
5000万件の中から、特定のクッキーやリファラを集計して、
応答速度15秒前後というのを目指してました。
postgresで出来そうなことは大概やったと思うので、
やはりテキストかDBMに変えて頑張ってみようと思います。

530NAME IS NULL:2005/10/03(月) 13:32:10 ID:???
>>529
その書きぶりは、とりあえずやってみたってことなのかな?
で、PostgreSQL でダメだったのをテキストベースでやってうまくいく算段があるの?
仮にログ1行 200バイトとしたら、5000万件のログは 10GBオーダーになるから、読むだけで 15秒じゃ終わらないと思うけど。

ところで、DBMってなに?
531NAME IS NULL:2005/10/03(月) 17:52:01 ID:???
SQLの結果をファイルに出力することは可能でしょうか。

select * from table; > data
イメージ的にはこんな感じです。

ご教示いただけますと幸いです。
532521:2005/10/03(月) 18:03:19 ID:X8D6IlXJ
>>530
取得時に加工して、1ログがだいたい150バイトくらいです。
バッチ処理で1セッションずつの統計データをつくって集計の高速化を図ってるんですが、
それでも1000万件くらいであっぷあっぷになってますorz
集計値をバッチすればいいのですが、期間と条件の指定が複雑で出来ないのです(´・ω・`)
テキストベースでやってうまくいく算段はまるでないです。
世の中には数千万件の高速集計エンジンがあるみたいなので、色々勉強してみようかなあと思いました。
533521:2005/10/03(月) 18:08:07 ID:X8D6IlXJ
534NAME IS NULL:2005/10/03(月) 23:35:09 ID:???
>>530
> ところで、DBMってなに?
ファイルに保存するハッシュみたいなもん。


でいいのかな?
535NAME IS NULL:2005/10/03(月) 23:51:24 ID:???
約1500万件ほどのレコードあって、これのdatabase_sizeが約1Gぐらいです。
少しでもサイズを削減しようと思って oid 列を削除したのですが 1M 程度
しか減りませんでした(vacuum full はしました)。

マニュアルには以下のようにあるので 15000000 * 4 / 1024 / 1024 ≒57M ぐらい
減ると思ったのですが、なぜ1M程度しか違いがないのでしょうか。
PostgreSQL 8.0.3 on Windows を使ってます。
>また、OIDをなくすことで、テーブル1行当たり(ほとんどのマシンで)4バイト分
>そのテーブルをディスクに格納するための容量を軽減でき、多少性能が向上します。
536NAME IS NULL:2005/10/04(火) 00:02:12 ID:???
>>535
すでに存在するレコードについては減らんよ。
サイズ減らしたいならdump/restoreすること。
537NAME IS NULL:2005/10/04(火) 00:21:12 ID:???
>>536
すんません、言葉が足りませんでした。

最初、with oids で作成したあとにalter table で削除するとぜんぜん減らなかったので、
drop databaseしてcreate table without oids からやり直しました。
で、その結果1Mしか減りませんでした。

カラム型をint8からint4にしたときはそれなりに減ったのですが・・・うーん。
538NAME IS NULL:2005/10/04(火) 01:45:38 ID:???
>>533
レス有難うございます。
何といいますか、いまいちうまくいきません。。
もう少し試してみて報告できればと思います。
539NAME IS NULL:2005/10/04(火) 07:18:22 ID:???
>>537
8.0系だと、アライメントが8の環境ではOIDを消してもほとんど効果が無いかもしれない。
アライメントの隙間にOIDが収まる形になっているから。
540535:2005/10/05(水) 00:22:54 ID:???
>>539
うーむ、そういうことなのか。
今日、念のため15万件のデータで追試してwithout oidsの方がサイズが大きくなって
しまいあきらめてました。
541NAME IS NULL:2005/10/08(土) 06:24:24 ID:???
実践ハイパフォーマンスMySQLのPostgres版みたいな本ってありますか?
542NAME IS NULL:2005/10/08(土) 20:52:37 ID:g8QS5IgG
テーブルの中の行を(drop table使うんじゃなくて)delete from hoge;で全部消すと、
100000行のテーブルより、1000行のテーブルの方が倍以上時間かかるときがあるけど、普通の動作ですか。
543NAME IS NULL:2005/10/09(日) 00:25:54 ID:???
1行がものすごく長かったり、張られたインデックスが多いと、そういうこともあるかもしれん。
544NAME IS NULL:2005/10/10(月) 21:58:47 ID:???
>>543

 行が長いのって関係ある?インデックスが多いと遅くなるかもなのは同意。
545NAME IS NULL:2005/10/11(火) 00:58:13 ID:???
8.0.4のリリースノートの変更点の最初にある
「VACUUMによってctidチェーンがすぐに削除されてしまうエラーを修正し、ctidリンクを追跡するコードにおいてより
多くの検査を行うようにしました。
これにより、長い間存在した、非常に稀な環境におけるクラッシュという問題が修正されました。」
っていうの具体的にどういう場合か分かる人教えていただきたいです。原因不明で壊れたことが何度かあるんで
当てはまるのかどうか知りたいんですが…。
546NAME IS NULL:2005/10/11(火) 09:13:18 ID:???
8.0.4で、パフォーマンス的な変更ってありますか?
547NAME IS NULL:2005/10/13(木) 01:08:19 ID:???
MySQLの、"SHOW CREATE TABLE" 相当の命令って何?
548NAME IS NULL:2005/10/13(木) 19:00:23 ID:gH/NQbzp
\dt
549NAME IS NULL:2005/10/14(金) 00:02:20 ID:???
550NAME IS NULL:2005/10/14(金) 00:26:52 ID:hpl5A/eC
データベースはじめ立ての超初心者です。
テーブルからデータを抽出したときに、連続する5件のデータを取り出したいと思っています。
上から5件分抽出とか、上から6件目〜10件目までを抽出という操作がしたいです。
主キーで取れよといわれるかもしれませんが、
カラムの削除後に主キーに空白が出来てしまうので正確に5件取ることができません。
調べてみましたが、いいヒントが見つかりません。
どなたか解決法を教えてください!
551NAME IS NULL:2005/10/14(金) 01:10:16 ID:???
>>550
LIMIT と OFFSET かな。
ついでに言うとORDER BYがない場合、抽出するデータの順序は決まってない。
まぁ変わることはそうそうないけど、保証はしてないってことで。

#LIMITのような標準でない(多くのDBMSにあるがな)SQLは邪道だ!
#男は黙ってCURSORを使う! って香具師居る?
552550:2005/10/14(金) 01:20:27 ID:hpl5A/eC
>>551
出来ました!ありがとうございます!
553NAME IS NULL:2005/10/14(金) 11:30:15 ID:UgUZzQRh
便乗質問でスマソですが、AccessのTop関数みたいなのないかな?
上位10位とか・・・
554NAME IS NULL:2005/10/14(金) 11:33:20 ID:???
>>553
LIMIT OFFSET がそうだが釣りか?
555NAME IS NULL:2005/10/14(金) 11:37:41 ID:???
便乗といって同じ質問をしてくる奴がたまにいるよなw
OFFSETの指定無しで LIMITだけ使えば TOP と同じ機能のはずだ。
556NAME IS NULL:2005/10/14(金) 14:32:35 ID:UgUZzQRh
ごめんなさい、TOPってそういう関数でしたか。
やりたかったのは、あるカラムの上位10位と指定したいのです。
20番目も10番目と同じ値の場合は20件目も出して欲しかったのですが・・・。
557NAME IS NULL:2005/10/14(金) 16:29:36 ID:???
>>556
専用の命令があるかどうか確かめてないが、普通はサブクエリ使ってしまいますね。
select * from table1 a where (select count(*) from table1 b where b.score > a.score) < 10;
558NAME IS NULL:2005/10/14(金) 18:38:09 ID:???
てすと
559NAME IS NULL:2005/10/17(月) 18:25:46 ID:AJD/n9Su
http://troels.arvin.dk/db/rdbms/
ここの
Top-n queryってところにそれっぽいのがあるよ
560NAME IS NULL:2005/10/18(火) 10:39:25 ID:ve5bWwWn
8.0.xのデータをpg_dump xxxx.sq; して 7.4.x に psql < xxxx.sql したら

ERROR: function pg_catalog.pg_get_serial_sequence("unknown", "unknown") does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.

って怒られたんだけど、なにこれ?
何とかデータ移行したいんですが、、、
誰か教えてください。
561NAME IS NULL:2005/10/18(火) 12:12:08 ID:???
>>560
バージョンダウンはそもそもできないと思うが・・・

とりあえずエディタで開いて該当行削ってみたら?
562NAME IS NULL:2005/10/19(水) 22:07:21 ID:PRdHDbXk
date型で不定の日時を入れたいんだけど、なんか方法ある?
563510:2005/10/19(水) 22:13:51 ID:???
copy x from '日本語ファイル名' が file not fuond になる問題ですが、
8.1beta3 で試してみたところ修正されていました。

8.0.4 ではだめでした。
8.0 系にもbackportしてくれよー。
564NAME IS NULL:2005/10/19(水) 23:10:10 ID:???
>>562
null
565562:2005/10/20(木) 00:24:37 ID:Lz1HsY+Z
>>564
いや、date型のままで年、月、日を個別にnull指定したいということなんだが・・・
ムリだろうか。
566NAME IS NULL:2005/10/20(木) 00:59:42 ID:???
>>565
例えば
2005年NULL月29日
ってことだろうか?
たぶん無理だろうけど、
なんでそんなことしたいん?
567NAME IS NULL:2005/10/20(木) 09:54:46 ID:???
>2005年NULL月29日

ワラタ
568NAME IS NULL:2005/10/20(木) 13:07:45 ID:???
>>566
565さんじゃないけど、例えば「5月の注文を受けたけど日付は不明」みたいなことは、
ありうるかもね。あんまりいいこととは思えないけど。
569NAME IS NULL:2005/10/20(木) 14:32:54 ID:???
>>568
それってdate型の意味が無いような・・・
570NAME IS NULL:2005/10/20(木) 15:55:03 ID:???
設計見直した方が良さそうだ
571NAME IS NULL:2005/10/20(木) 21:17:23 ID:???
期間なら、開始と終了を持たせればよいけど、
「毎月15日の予定」を表したいと思うと、ちと面倒か。
572NAME IS NULL:2005/10/20(木) 21:49:33 ID:???
>>571
ちなみにそういうときってどーするもん?
漏れはそういうときはtext型で「15」だけもって、
あとは言語で処理なんだけど、もしかして間違ってる?
573NAME IS NULL:2005/10/21(金) 03:00:19 ID:???
年月日がそれぞれ別なら普通 Year / Month / Day_of_month とかに分けるだろ
574NAME IS NULL:2005/10/21(金) 04:14:36 ID:LymSDkRT
文字化けする〜
レン鯖でpostgresqlをjspで操作しているのだが
文字コードが違うのか
「〜」
が削除されたり「?」になったりする
他の文字は全て正常に格納されるから逆に不思議だ
こっちはShift_JISで操作しているが、向こうの文字コードの設定が不明
sql操作で設定された文字コードを知ることは出来ないだろうか

鯖缶に聞け はなし
そんな鯖やめろ もなしで
575NAME IS NULL:2005/10/21(金) 04:52:43 ID:???
>>574
SHOW server_encoding ;
たぶんUNICODEなんだろうな。

ttp://www.asahi-net.or.jp/~hc3j-tkg/unicode/#microsoft
576574:2005/10/21(金) 05:06:15 ID:LymSDkRT
>>575
サンクス EUC_JP だった
UNICODEもEUC_JPも試したんだが・・・おかしい
577NAME IS NULL:2005/10/21(金) 05:10:16 ID:???
>>576
Javaってよく知らないんだけど、
内部はUNICODEじゃなかったっけ?
578574:2005/10/21(金) 05:10:46 ID:LymSDkRT
もしかして文字コードの指定方法が間違ってるとか・・・?
今は言語で指定しているだけだが・・・
579574:2005/10/21(金) 05:12:46 ID:LymSDkRT
>>577
いや、実は俺もよく知らない汗
JSPでHTTPサーバ経由ならShift_JISでないと化けるから
値の受け渡しにはShift_JISを設定してる
580NAME IS NULL:2005/10/21(金) 12:37:33 ID:???
JSPで文字化けって検索しないのかよ

出力エンコーディング指定はShift_JISじゃだめだぞ
MS932かWindows-31J

これらは他の文字コードコンバータとフルウイドスチルダの格納先が違う

なぜといわれてもMSだけ違うのでかなり昔から問題になってたやつだ

postgresの問題じゃないよ
581NAME IS NULL:2005/10/21(金) 12:38:21 ID:???
>>579
× Shift_JIS
○ Windows-31J
582NAME IS NULL:2005/10/21(金) 12:55:41 ID:???
旧漢字って格納する方法ありますかね?
はしごたか、とか。
583574:2005/10/21(金) 14:52:36 ID:LymSDkRT
>>580
検索ワードが悪かったのかダメだった。
JSPで文字化け だと出てきて、それ読んだ限りでは
このままじゃだめぽということです
formから受けた文字列をエンコードするのに
request.setCharacterEncoding("Windows-31J ");
にして、そのままDBにアクセスするのじゃダメなんかね?

>>581
訂正サンクス たしかにその通りでした

>>582
JIS拡張か、コードで指定する方法があるみたいだけど
ttp://www.box123.nu/rie/kanji.html
584NAME IS NULL:2005/10/21(金) 15:13:30 ID:???
>>583
ユーザーの入力した文字コードが何かによってかわる
今回の場合はMS932なんでしょ?
ならそれでいい

ただし、DBに格納された値をとりだしてEUCとかに変換するとおかしくなる

Postgresでそのへんやってくれるパッチ入れたJDBCドライバもある
585574:2005/10/21(金) 15:56:41 ID:LymSDkRT
>>584
ユーザ MS932
格納  indows-31J
で、取り出し後の指定は特にしていないのだが・・・
なにかマズーですか
586582:2005/10/21(金) 15:58:28 ID:???
>>583
d。見てみます
587NAME IS NULL:2005/10/21(金) 19:45:15 ID:bovSjVTN
質問があります。

テーブル1のリストの各々が専用のテーブルを所有していて
そのテーブル1を専用のテーブルの内容を使ってUPDATEで更新
したいのですが、そういうのはできるのでしょうか?
できるとしたらどのような感じになるのでしょうか?
今PHPでプログラムを組んでいるのですが、
最悪の場合、テーブル1のリストの配列を用意して
1つ1つ更新しなければならないのかなと・・・
588NAME IS NULL:2005/10/21(金) 19:53:07 ID:???
>>585
Windows-31JとMS932は同じな
エイリアスになってる

1.4.0まではShift_JISがMS932とイコールだったが
XML等文字コードが厳密じゃないと困るとかあるだろうからと、
ちゃんとわけたのが1.4.1

当時の記事あさるとこのへんの混乱がよく出てるはず

MS932のみをフロントエンドにしてる文にはそのままでいいよ
EUCとかJISとかを相互にやりとりしはじめるとMSだけマッピング先が違うのがむかついてくるはず
589574:2005/10/21(金) 21:40:09 ID:LymSDkRT
レスくれたみなさんありがとうございます
俺は馬鹿だ・・・contenttypeの指定してたorz
直したらうまくいきました、ほんとありがとう
590NAME IS NULL:2005/10/21(金) 21:54:34 ID:???
ドジっ子キター
591NAME IS NULL:2005/10/21(金) 22:27:35 ID:DRbqnPSE
windowsXPにて
手違いでなんどかインストールとアンインストールを繰り返しているうちにインストールができなくなってしまいました。
インストール中のファイルシステムのアクセス権設定のところで止まってしまいます。
コメントは「インストールされたファイルの権限設定にしっぱいしました。ログファイル’D:\temp\peperm.log'を見てください。」とのことです。
でそのログをみてみると突然「アクセスが拒否されました」とでているだけで原因がわかりませんでした。
Cディスクにインストールしようとしても結果は同じでした。
誰か原因がわかる方いらっしゃったらレスくださいm(_ _)m
592591:2005/10/21(金) 22:35:59 ID:???
すいません。
Cディスクに入れたらインストールできましたorz
空き容量の関係でDドライブに入れたいのですが、不可能なのでしょうか?
593NAME IS NULL:2005/10/21(金) 23:11:34 ID:???

CドラがNTFSで、DドラがFATとか。
594NAME IS NULL:2005/10/21(金) 23:35:00 ID:???
ご指摘どうもですm(_ _)m
プロパティで見たところどちらもNTFSのようです。
595NAME IS NULL:2005/10/21(金) 23:41:15 ID:???
まぁPostgres8はDB格納先かえれるから
Postgres本体はシステムドライブで、データは他のドライブでというのもありだろうね

で、そのエラー俺も知り合いの家で見たことがある
セットアップ中の選択だったかが問題だったような
ドライブ自体はDでもいってるよ

エラーメッセージのパスがなんか変な気がする・・・
596NAME IS NULL:2005/10/22(土) 00:15:23 ID:P6gGuKwd
7.3.4使ってるんだけど、
レコード数に制約とかない?
ディスクに許すだけ格納可能?
597NAME IS NULL:2005/10/22(土) 07:49:42 ID:???
>>596
最大10億行/テーブル くらいかな。実質 制限はないと思ってよい。
598NAME IS NULL:2005/10/22(土) 11:50:20 ID:???
性能の制約があるから、実質は100万行まで。
599NAME IS NULL:2005/10/22(土) 15:46:05 ID:???
んなわけない。
結局は要件と設計しだいだが、実際に10億件くらい扱っていて
実用的に使えているシステムはある。
600NAME IS NULL:2005/10/22(土) 17:59:31 ID:G1rn7p/p
>>599
すみません、大きな規模のDBを扱ったことないので聞きたいのですがどのくらいのハードで動いてるんですか?それ
601NAME IS NULL:2005/10/22(土) 18:08:50 ID:???
そんなに凄いレコードで
ちゃんとvaccumとかデータベースのバックアップが
上手くいくもんなんだろうか
602NAME IS NULL:2005/10/22(土) 20:24:42 ID:???
嘘に決まってるじゃん。
603NAME IS NULL:2005/10/23(日) 08:51:45 ID:???
>>600
5年くらい前の中堅PCサーバーだよ。
ディスクも入れて700万円くらいの。

>>601
vacuum/バックアップは一晩かかるけど特に問題は出ていない。
reindexは2-3日かかってしまうけどね。
604NAME IS NULL:2005/10/23(日) 11:15:58 ID:???
OSのエディション教えてくれ
605NAME IS NULL:2005/10/23(日) 12:56:22 ID:???
vacuumを考えると8じゃないとこわいかもな
606NAME IS NULL:2005/10/23(日) 14:07:25 ID:???
100万行単位ならそう性能面で問題は感じないな。
xeon 3GHz 4 発のサーバ。
数千万行になるとテーブルの構造や SQL にだいぶ注意が必要。
607NAME IS NULL:2005/10/23(日) 14:43:40 ID:???
どのDBMSでも同じだけど、大規模DBでは

・一度にアクセスされるブロック数を最小に抑える
・SeqScanかかったらアウト

きちんとチューニングしようとしたら、プランナ/オプティマイザの特性や
内部構造に関する知識が不可欠。
608NAME IS NULL:2005/10/24(月) 04:40:58 ID:???
>SeqScanかかったらアウト
糞だな。
609NAME IS NULL:2005/10/24(月) 23:00:26 ID:u+G/6WMn
Postgresで文字列のソートが上手くいきません
番号、グループ名
1、グループ2
2、グループ2
3、グループ3
4、グループ3
みたいなテーブルがあって
ORDER BY グループ名 DESC すると
4、グループ3
1、グループ2
2、グループ2
3、グループ3
みたいになります。

どうしたら解決できますか?
610NAME IS NULL:2005/10/24(月) 23:06:16 ID:???
>>609
Postgresのバージョンぐらいは書こうな。
多分、>>472 辺りの問題ではないかと思われ。
611NAME IS NULL:2005/10/25(火) 00:06:20 ID:???
Windows版だったらロケールとかいじらなければそのままうまくいくのにね・・・
612NAME IS NULL:2005/10/25(火) 01:24:34 ID:???
8.1beta4age
613NAME IS NULL:2005/10/25(火) 15:34:11 ID:nrK3GlWT
ミラクルリナックスV3.0にPostgreSQL 8.0.3または8.0.4を
インストールするときの問題点や注意点、その組み合わせで
運用した場合の問題点等ありますでしょうか?
614NAME IS NULL:2005/10/25(火) 20:04:46 ID:???
そんなもん、ミラクルにきけよw
615NAME IS NULL:2005/10/25(火) 23:07:53 ID:???
>>613

そういうレベルでインストールすること自体が一番の問題点だな。
616NAME IS NULL:2005/10/25(火) 23:39:38 ID:???
>>615
せっかくインストールして楽しもうという人にそんなこと言うのはイクナイ
617NAME IS NULL:2005/10/26(水) 09:10:42 ID:???
しかし、なんでミラクルよ
618NAME IS NULL:2005/10/26(水) 09:48:15 ID:???
>>617
会社で焼いてきたから

だろ?
619NAME IS NULL:2005/10/26(水) 14:13:45 ID:???
遅レスですが、>>411 みたいなのって動的SQL使わずになんとかならないもんですかね。
WHERE句はCASE-WHENでいけたんですが…
620NAME IS NULL:2005/10/26(水) 19:19:00 ID:???
ものスゴイ嫌がらせ思いついた
1 :以下、名無しにかわりましてVIPがお送りします :2005/04/25(月) 04:44:27 ID:cxwJSDGr0
例えばさ、ID非表示の板で質問したやつがいるとするじゃん?
で、その答えがくる前に名前欄にそいつのレス番入れて
「すみません、自己解決しました」って入れるんだよ
マジコレはハマるwwwwwww
621619:2005/10/26(水) 19:21:45 ID:???
すみません、自己解決しました
622NAME IS NULL:2005/10/26(水) 19:24:27 ID:???
>>621
詳細教えて
623NAME IS NULL:2005/10/26(水) 20:28:12 ID:???
>>620
はやく氏ねよ。
624NAME IS NULL:2005/10/27(木) 07:10:38 ID:???
where id between 100 and 200
にしたら1100とか1203とか左から解釈したで
あろうものがひっかかります
なんでですか
625NAME IS NULL:2005/10/27(木) 08:07:51 ID:???
>>624
id をchar/varcharで定義してない?
626NAME IS NULL:2005/10/27(木) 09:50:05 ID:j1fXyoBk
巨大なデータベースで
インデックスを適切に作ってもなおかつ
SELECT するのに時間がかかる場合に,
検索を高速化する方法はあるのでしょうか?
627NAME IS NULL:2005/10/27(木) 10:09:50 ID:???
>>626
バキュームを定期的にするとか…
628NAME IS NULL:2005/10/27(木) 10:12:29 ID:???
>>626
本当にインデックスが使用されているのかと…
629NAME IS NULL:2005/10/27(木) 10:12:40 ID:???
>>626
分けるとか…
630626:2005/10/27(木) 10:17:56 ID:j1fXyoBk
>>628
explain で確認しているので
インデックスが使われていることはまちがいないです

1つの800万くらいレコードがあります
631NAME IS NULL:2005/10/27(木) 18:37:34 ID:???
>>630
インデックスが適切に使われてないとか。
複数カラムでインデックスはってるのに、使ってるのは
単カラムとか。

対策としては、テーブルわけるとかDBわけるとか
postgresには複数のテーブルをひとつのテーブルとして
扱う機能はなかったっけ?joinじゃなくて。
632626:2005/10/28(金) 09:26:34 ID:Hm3lQFg3
いろいろ教えてもらいありがとうございます

関連した質問で

1つのテーブルで,
たとえば n 個レコードがあって
その中から SELECT して
k 個がヒットする場合に
いちばんうまくインデックスをはって
ヴァキュウムもしてあって,
最良の状態でも
最低どれくらいの計算量がいる,と
見積もるような公式というか方法論はあるのでしょうか?
633NAME IS NULL:2005/10/28(金) 09:33:12 ID:???
>>632 EXPLAIN
634NAME IS NULL:2005/10/28(金) 09:38:50 ID:Hm3lQFg3
>>633
EXPLAIN は SQL の入力に対して,
どのように計算して,
どれくらい計算量がいるか見つもるものですよね?

そうじゃなくて,
なんというか検索の理論的な限界を知りたいわけです.

その限界値と EXPLAIN の出す計算量の見つもりを
比較して近い値になったら
もうインデックスは最良になってると,
あきらめがつくわけです
635NAME IS NULL:2005/10/28(金) 09:58:11 ID:???
>>634
理論的な限界を見積もるには、PostgreSQLのオプティマイザ以上の知識と計算が必要。
オプティマイザがどういうルールで動作しているか、知っているのか?

単純な場合に限り、計算量のオーダーなら簡単に見積もれるだろう。
全検索ならO(N)、インデックス検索ならO(logN)。
それ以上に複雑な場合は、オプティマイザがやっていることを、
オフラインで手計算することになりかねない。
636NAME IS NULL:2005/10/28(金) 12:15:11 ID:GzfQtyZE
id
1
2
3

上記のデータがあり、
1,2,3のように一列にして返す集合関数のようなものを定義したいと思っています。
いろいろしらべてためしていのですが、なかなかうまくいかずにこまっています。

PostgreSQLのストアドが詳しく説明されている日本語サイトはないでしょうか?
本家日訳を見ながらやっているのですが…。
637NAME IS NULL:2005/10/28(金) 12:55:00 ID:???
質問です。

=> select * from src;
a
---
B
C
A

というテーブルがあるときに、
a の順序を表すカラムを追加したテーブルを作成しようと思って、
次のようにしました。

create sequence seq;
create table dst as select a, nextval('seq') as b from src order by a;

ところが、できたテーブルは次のようになってしまいます。

=> select * from dst;
a | b
---+---
A | 3
B | 1
C | 2

なんとなく nextval が呼ばれた後に order by で並び替えが行われている
ような気がするのですが、

a | b
---+---
A | 1
B | 2
C | 3

というテーブルが作られるようにするにはどうしたらよいのでしょうか。
638NAME IS NULL:2005/10/28(金) 13:20:58 ID:???
>>637
テストせずに書くけど、これでどう?
create table dst as select x.a as a, nextval('seq') as b from (select a from src order by a) as x;
639637:2005/10/28(金) 13:51:46 ID:???
>>638
はい、これで希望した動作になりました。ありがとうございます。
640NAME IS NULL:2005/10/28(金) 14:28:46 ID:???
>>636
詳しく説明されているわけじゃないが、シーラカンス本を読めばその程度はできるかも。

CREATE FUNCTION STRJOIN(TEXT,TEXT) RETURNS TEXT AS '
DECLARE
table_query ALIAS FOR $1;
column ALIAS FOR $2;
query TEXT;
res TEXT := '''';
buf RECORD;
BEGIN
query := ''SELECT '' || column || ''::TEXT AS __STRJOIN_TEXT FROM '' || table_query;
FOR buf IN EXECUTE query LOOP
res := res || buf.__STRJOIN_TEXT;
END LOOP;
RETURN res;
END;
' LANGUAGE plpgsql;

SELECT strjoin('テーブル名もしくはサブクエリ','連結するカラム名');
641640:2005/10/28(金) 16:44:45 ID:???
気になったので追加。
文字列をカンマ(,)で連結する"集約"関数

CREATE FUNCTION strjoinf(TEXT,TEXT) RETURNS TEXT AS '
SELECT $1||'',''||$2;
' LANGUAGE sql;

CREATE FUNCTION strjoinfinal(TEXT) RETURNS TEXT AS '
SELECT substring($1 FROM ''^,(.*)$'');
' LANGUAGE sql;

CREATE AGGREGATE strjoin (
BASETYPE = TEXT,
SFUNC = strjoinf,
FINALFUNC = strjoinfinal,
STYPE = text,
INITCOND = ''
);

SELECT strjoin(colmun) FROM Table;

最後に先頭のカンマを除いてやるのに、
わざわざ関数を作って呼び出すのも
なんだかなぁ〜。
642NAME IS NULL:2005/11/01(火) 12:32:13 ID:???
ポスグレで固定長ファイルをテーブルに読み込む方法ってありますか?
643NAME IS NULL:2005/11/01(火) 15:48:33 ID:???
異なるバージョンのプスグレを、異なるポートを使って
同時に稼働させることは可能ですか?
644NAME IS NULL:2005/11/01(火) 19:27:26 ID:???
Unix系なら簡単にできるとは思うが。
645NAME IS NULL:2005/11/01(火) 19:44:33 ID:???
質問です。
あるテーブルの容量を知りたいときはどうすればいいのでしょうか?

PostgreSQLが管理しているディレクトリの容量を
コマンドラインで確認すればいいような気がしましたが、
どのディレクトリにどのテーブルが格納されているかは
PostgreSQLを経由しないとわからないような気がしました。

最終的にはPHPで参照して出力したいので、
PHPの関数も探しましたが見当たりませんでした。。。

すみませんが宜しくお願いします。
646NAME IS NULL:2005/11/02(水) 02:48:59 ID:???
>>645

rootになってlsすればいいんじゃね?
647NAME IS NULL:2005/11/02(水) 08:44:22 ID:???
>>645
SELECT relpages*8 FROM pg_class WHERE relname = 'テーブル名';
http://www.postgresql.jp/document/pg800doc/html/diskusage.html
648NAME IS NULL:2005/11/02(水) 10:49:38 ID:o5XJyoqf
PostgreSQLでOracleのMergeと同等のものはないでしょうか?

主キー制約に反するかどうかのチェックをするのに
一旦SelectしたあとInsertのようなことをプログラムで実現しています。
これを1回のコネクションではできないでしょうか?
649NAME IS NULL:2005/11/02(水) 14:21:03 ID:???
insertするのならinsertなげてはねられればいいだけじゃね・
650645:2005/11/02(水) 15:35:04 ID:???
>>646

レス有難うございます。
容量調査に毎回rootになるのはちょっと危険なので
PHPからかSQLでできるのがいいですね。

>>647

レス有難うございます。
こんなものがあったとは…

ちなみに、 relpages / 8 ですかね?
(1ベージ通常8キロバイトとあったので)

試しに100KB程度のテキストをINSERTして
容量を見たのですが、なぜか1のままでした。
VACUUMを走らせた後にやったんですが
どのタイミングで更新されるんでしょう…
651NAME IS NULL:2005/11/04(金) 01:26:43 ID:uTEjdO0U
psqlじゃなくてphpを使ってテーブル一覧などを
取得(表示)させる方法はありますか?
652NAME IS NULL:2005/11/04(金) 08:35:04 ID:???
>>651
pg_tablesを見なさい
653NAME IS NULL:2005/11/04(金) 11:25:43 ID:???
v8.xで使える、Windows用のODBCドライバってありますか?
インターウィズのは古いですよね?
654NAME IS NULL:2005/11/04(金) 20:31:03 ID:???
655NAME IS NULL:2005/11/05(土) 01:44:24 ID:???
>>654
禿d!
656NAME IS NULL:2005/11/07(月) 07:45:05 ID:???
Excel2000でODBCドライバ使うとエラーが。。。
657NAME IS NULL:2005/11/07(月) 11:55:31 ID:???
もっと具体的に
658NAME IS NULL:2005/11/07(月) 13:51:00 ID:HkTlWVSF
すんませんが、教えてください。

V7.0で動作しているアプリを、V7.4系かV8へ移行しようと思ってるんですが、
アップグレードする際の問題点や、注意点など知りたいのです。

どこか有益なサイトとか、本とかあったら紹介してくださいませんでしょうか?
659NAME IS NULL:2005/11/07(月) 14:19:11 ID:DjBBhOw7
すみません、Webプログラムから誘導されてきました。

Perl+PostgreSQLでWebアプリを作っています。
DBI::Pg使用し、1度の接続で下記要件を満たすSQL文を教えて下さい。
色々やってOUTER joinでできそうな気がするのですが..

顧客テーブルと購入履歴テーブル、商品テーブルがあり、
顧客一覧を出力する時に、顧客ごとに商品購入件数と購入商品の最高価格も表示したいのです。

テーブル構成は
<ユーザテーブル>
user_no
user_name
user_mail
<購入履歴>
buy_no
user_no
gift_no

<商品テーブル>
gift_no
gift_title
gift_money

です。宜しくお願いします!
660NAME IS NULL:2005/11/07(月) 14:51:21 ID:???
>>659
テストしていないけど。。。

SELECT ユーザテーブル.user_no, user_name, user_mail, buycount, maxprice
FROM ユーザテーブル
LEFT OUTER JOIN (
 SELECT user_no, COUNT(buy_no) AS buycount, MAX(gift_money) AS maxprice
 FROM 購入履歴
 LEFT OUTER JOIN 商品テーブル ON 購入履歴.gift_no = 商品テーブル.gift_no
 GROUP BY user_no
) AS t ON ユーザテーブル.user_no = t.user_no
661NAME IS NULL:2005/11/07(月) 15:18:27 ID:DjBBhOw7
>>660

ありがとうございます。
ためしてみます。

自分には高度すぎて理解するのに時間かかりそうです。
662645:2005/11/07(月) 20:09:35 ID:???
度々ですみません。。
どなたか >>650 についてご存知の方いらっしゃいますか?
テストをしたところ、以下のような結果になりました。

test=# vacuum;
test=# create table test ( test text );
test=# \i insert.sql (←1000KBのテキストをINSERT)
test=# select relpages from pg_class where relname = 'test';
relpages
----------
10
test=# vacuum;
test=# select relpages from pg_class where relname = 'test';
relpages
----------
1
test=# delete from test;
test=# select relpages from pg_class where relname = 'test';
relpages
----------
1
test=# vacuum;
test=# select relpages from pg_class where relname = 'test';
relpages
----------
0

OS: FedoraCore3
DB: PostgreSQL 7.4.8
663NAME IS NULL:2005/11/07(月) 20:59:37 ID:???
PostgreSQLでは文字列は自動的に圧縮されて格納されるぞ。
だから、1000KBのテキストってのが同じ文字の繰り返しとかだったら
必要サイズはかなり小さくなる。
664659:2005/11/08(火) 13:31:12 ID:gbPHUDWG
>>660

できました!ありがとうございます。
外部結合するときにテーブルではなくサブクエリを渡し、
ついでに集約関数を使うっていうことですね。
665662:2005/11/08(火) 15:01:57 ID:???
>>663

レスありがとうございます。

なるほど、確かに1000KBのテキストは数字の羅列でした。
ということは relpages は正しいんですね。。。orz

VACUUM しないと更新してくれないということは、
Webにアクセスする度にテーブル容量を検索して表示する
っていうプログラムを作ったとすると、
毎回 VACUUM を入れる必要があると。。。

頻繁に VACUUM するものを作るのはどうかと思うんで、
とりあえず諦めます…ありがとうございました。。。orz

666NAME IS NULL:2005/11/08(火) 16:09:21 ID:???
PostgreSQL + Java(JDBC)を使っています。
データベースをUNICODE形式で作成し、
text型のカラムに、UTF-8形式の文字列を入れたいのですが、
insert途中で、

ERROR: Unicode characters greater than or equal to 0x10000 are not supported

と出てしまいます。
ググったら、「3バイト文字以上の文字には対応できない、というメッセージ」という情報が
あったのですが、カラムの型を変えずに回避する方法って無いでしょうか?
667666:2005/11/08(火) 18:37:52 ID:???
charSetが間違っていたようです。
とりあえずエラーは出なくなりました。
ポスグレにはUTF-8で旧漢字を入れられることは確認できたので、
あとはJava側の問題のようです。
お騒がせしました。

ダミアンか・・・orz
668NAME IS NULL:2005/11/08(火) 20:12:44 ID:???
8.1正式版がリリースされましたね
669NAME IS NULL:2005/11/09(水) 04:05:01 ID:2Q4loW0d
pgAdminIII を WinXP SP2 にインストールしてみました。
11/7 にリリースされた pgAdminIII v1.4.0 が、クエリツール起動のタイミングで必ずアボーンします。
(1つ前の pgAdminIII v1.2.2 のクエリツールは問題なく動作してます。)
PostgreSQL v8.0.4 で動作中です。(FreeBSD5.3)
同じ症状の人いますか?
670NAME IS NULL:2005/11/09(水) 05:58:00 ID:???
>>669

正式版に取り込まれなかったのか、この修正。
下記はメーリングリストよりの引用で、一部省略あり。

>Subject: [pgsql-jp: 36344] Re: pgadminIII 1.4-RC1
>原因は、私のミスでした・・
>GetTextフォーマットを間違えてただけの問題でした。

>で、i18n/ja_JP下のpgadmin3.moを入れ替えていただければ
>解決いたします。
>svnから取れないかたは、
http://cre-ent.skcapi.co.jp/~saito/pgadmin3/pgadmin3.mo
>よりお取り寄せくださいませ。

671669:2005/11/09(水) 07:17:49 ID:???
>670
pgadmin3.mo 入れ替えたら動きました。
ありがとうがざいました。

これからは、メーリングリストを Namzu します。
672NAME IS NULL:2005/11/09(水) 18:03:55 ID:RKtP+qps
PostgreSQL 8.0
の ODBC ドライバなんですが,

SELECT 〜 LIMIT 100

とかやると,エラーが出て,
LIMIT のあたりが悪いとかなんとかメッセージが出ます

postgres の ODBC ドライバは LIMIT に対応してないんですか?
web で調べてもそのような文献がありませんでした.

LIMIT に対応してないのは
何か理由でもあるんですか?

LIMIT をかけたいときにはみなさんどうしてますか?
673NAME IS NULL:2005/11/09(水) 18:15:33 ID:???
>>672
ODBCって、SQLの解釈はODBC側で行うから、PostgresのSQLはエラーになると思うけど。
SELECT TOP 100 xxx, yyy FROM table
でいいんじゃないかな。
674NAME IS NULL:2005/11/09(水) 23:49:20 ID:???
8,1でたね。
675NAME IS NULL:2005/11/10(木) 00:51:21 ID:???
676NAME IS NULL:2005/11/10(木) 11:38:20 ID:???
8.1でたね!
677NAME IS NULL:2005/11/10(木) 11:59:32 ID:???
678NAME IS NULL:2005/11/10(木) 13:12:37 ID:???
8.1は64bit対応ってことだけど、
16GBくらい積んでる64bitマシンに、15GBとか割り当てると
すごく速くなったりするのかな?
お金ないから試せないけどorz
679672:2005/11/10(木) 15:07:54 ID:K6TqKaxO
>>673
TOP をためしてみたんですが,
TOP も使えないみたいですね

このような場合,ヒット件数を
制限するにはどうしたらいいのでしょうか?
680NAME IS NULL:2005/11/10(木) 16:27:01 ID:???
>>678
32GB積んでる64bitマシンを自由に使えるけど、試してみようかなあ
64bitはsoも統一しなきゃならなくて、めんどくさくてやってないが・・
681NAME IS NULL:2005/11/10(木) 16:35:15 ID:???
>>680
外から触れるようにしてくれ
682NAME IS NULL:2005/11/10(木) 16:50:57 ID:???
8.1のWindowsバイナリja版がまだリリースされていないけど、ja版じゃないやつをインストールとどうなるの?
683NAME IS NULL:2005/11/10(木) 16:53:36 ID:???
>>680
うらやまし杉。
漏れも是非、結果を聞きたい。
テーブルサイズがデカい場合、
驚異的な差が出そうな希ガス。
684NAME IS NULL:2005/11/10(木) 16:54:30 ID:???
>>679
recordset に直接生SQLわたすんじゃだめ?
685NAME IS NULL:2005/11/10(木) 17:06:30 ID:???
>>682
インストールした後、普通に使えるけど?
686NAME IS NULL:2005/11/10(木) 17:13:23 ID:???
ja版ってなにがjaなの?
687NAME IS NULL:2005/11/10(木) 17:33:13 ID:???
>>686
ヒント: 農協
688NAME IS NULL:2005/11/10(木) 17:37:58 ID:???
>>687 サンキュー!

ってメニューやらドキュメントやらが日本語か
本体は同じだと思うのでそのままでもいけるでしょう
689NAME IS NULL:2005/11/10(木) 22:39:23 ID:T7cdWFCL
すみませんが、早急に教えてもらえませんか?
ブラウザに、
undefined function pg_connect()・・・・
と表示されます。PHP、Apache2、FedoraCore4を使用。
php.iniの設定に問題があるのでしょうか?
それと、pg_ctl start -o "-i"  でTCP/IPの設定が
有効になりますか? オプション設定もよくわかりません。
わかる方お願いします。
690NAME IS NULL:2005/11/10(木) 22:43:13 ID:???
それだけの情報でわかる加代。
postgres.confとhba.confがデフォなんだろ、どーせ。
691NAME IS NULL:2005/11/10(木) 22:43:43 ID:???
postgresql.confね。
692NAME IS NULL:2005/11/10(木) 22:46:04 ID:T7cdWFCL
ありがとうございます。
Postgresql.confですか、わかりました。
どこを編集したらいいですか?
693NAME IS NULL:2005/11/10(木) 23:10:02 ID:???
>>689
http://www.komonet.ne.jp/~php/faq.htm

エラー2

PHP4からPostgreSQLのデータベースに繋ごうとしたら、
 Fatal error: Call to undefined function: pg_connect()
と言うエラー表示が出て、データベースに繋げられません。
694NAME IS NULL:2005/11/10(木) 23:11:57 ID:???
>>689
いや、postgresql関連の関数が使えないphpなんだろ。
configure で--with-pgsql を指定してビルドのやり直し。
695NAME IS NULL:2005/11/10(木) 23:13:39 ID:T7cdWFCL


上記アドレス記載内容も参考にさっきしてみたり、
他のサイトの方法を試しましたがダメでした・・・。
696NAME IS NULL:2005/11/10(木) 23:15:19 ID:T7cdWFCL
>>694
PHP5となります。configureはすべて指定しました。phpinfo()も問題ないです。
697NAME IS NULL:2005/11/10(木) 23:22:25 ID:T7cdWFCL
>>694

解決できました。ありがとうございます!!php.iniの設定ミスでした。
相談に乗っていただきありがとうございました。
698NAME IS NULL:2005/11/11(金) 16:45:55 ID:vWg2X9K2
8.1のテーブルパーティショニングって、
どこに解説あるんでしょ?(´・ω・`)
699NAME IS NULL:2005/11/11(金) 17:33:42 ID:LMxjujID
A,B 2つのサーバにまったく同じDBが定義されていて,
サーバAの方の table1 テーブルにレコードが
たくさん入っており,
サーバBの table1 テーブルは0件しかはいっていないとします.

Bの table1 を A の方とまったく同じにするために,
なるべく簡単でいい方法はありますか?

ただし,ファイルにデータを落とす方法は除外します
700NAME IS NULL:2005/11/11(金) 18:24:59 ID:???
>>699

pg_dump -h A -t table1 databasename | psql -h B databasename
じゃだめ?間にファイルがあるようなもんだが。

今なら Slony-I とか使うのも面白いが
701700:2005/11/11(金) 18:26:51 ID:???
あ、テーブル定義が先方にあるんだったら、pg_dump のオプションに -a いれたほうがいいか
まあ無しでエラー出ても動くけど
702NAME IS NULL:2005/11/11(金) 18:33:18 ID:???
簡単かどうか知らんが、レプリケーションしたいというのなら、
usogresとかpgreplicatorとかSlony-I
じゃねーの。
703NAME IS NULL:2005/11/11(金) 18:44:03 ID:???
テーブル単位で同期させるならその中ならSlonyしかないでしょ
そもそもそれ以外は起動前に内容一致させとかなきゃならんし
704NAME IS NULL:2005/11/11(金) 19:00:36 ID:vWg2X9K2
db_linkでごっそりもってくるとか。。。
705NAME IS NULL:2005/11/12(土) 02:21:57 ID:???
マスタテーブルがいくつか、それらを結びつける中間テーブルがいくつかあって、
ジョインを多用しています。
select/insert/updateでのインデックスの張り方で、汎用的な方法ってありますか?
詰めSQLしないで、パフォーマンスを上げたいのですが。。。
706NAME IS NULL:2005/11/12(土) 11:55:04 ID:???
意訳すると「自分では詰めSQLしたくないから、お前らやってくれ」か?
707NAME IS NULL:2005/11/12(土) 13:45:14 ID:???
>>705
外注する
708NAME IS NULL:2005/11/15(火) 00:47:39 ID:ioV5ssPl
早急に教えてもらえますか?
ブラウザに以下の説明が出ます。
Unable to connect to PostgreSQL
server: unknown host name: localhost
port=8040
dbname=testdb2
user=testuser2

OSはfedoraCore4 php5 apache2を使用しています。
ポストグレ側の設定がおかしいのでしょうか?
わかる方、お願いします。
709NAME IS NULL:2005/11/15(火) 01:09:25 ID:???
>>708
エラー内容読めよ。。。
710NAME IS NULL:2005/11/15(火) 08:16:09 ID:???
>708-709
ワラタ
711NAME IS NULL:2005/11/15(火) 08:28:53 ID:???
そのサーバー上でpsql使ってポート8040で
つながるの?
712NAME IS NULL:2005/11/15(火) 08:59:07 ID:DhdmtWa8
>>708
だいたい人にもの聞くのに、何が「早急に」だよ。
エラソーな。
713NAME IS NULL:2005/11/15(火) 09:38:55 ID:???
まともなJDBCはいつ実装されますか?
714NAME IS NULL:2005/11/15(火) 10:48:45 ID:???
708はPHPスレで解決(?)したみたいですよw
715NAME IS NULL:2005/11/15(火) 11:59:48 ID:???
http://pc8.2ch.net/test/read.cgi/php/1130190606/490
これかあ、しかし↓で解決というのかね

517 nobodyさん sage New! 2005/11/15(火) 02:07:32 ID:???
俺はもう降りる。やってられん。


518 490 New! 2005/11/15(火) 02:09:41 ID:EuotBK4K
>>517
いろいろありがとうございました。
ちょっと自分で本屋に行って勉強してみます。
ほんとに感謝します^^
では。
716NAME IS NULL:2005/11/15(火) 19:31:23 ID:D2yxaO+1
text型で「19790504」と入っているデータを年齢データ(ここ
では26歳なので26)として出したいのですが、to_timestamp
やage関数を組み合わせてもうまくいきません。

よい方法があればご教示いただきたく思っております。
宜しくお願いいたします。
717NAME IS NULL:2005/11/15(火) 20:07:55 ID:???
実際にやってみてダメだったコードかいてもらわんと
718NAME IS NULL:2005/11/15(火) 20:47:39 ID:???
>>716
timestamp型ではなくてdate型にキャストしてみるとか。
SELECT age('19790504'::date);
719NAME IS NULL:2005/11/15(火) 21:20:16 ID:???
>>718
どんぴしゃ回答、誠に有難うございます。

結論としては、
select * from user where age(birthday::date)>=20 and age(birthday::date)<30;
で20代を抽出することに成功しました。
本当に感謝です。

有難うございました。
720NAME IS NULL:2005/11/16(水) 16:23:17 ID:vmGYJzFr
十分に巨大な件数をもつテーブルを SELECT するとしますよね
それで,体感的にもかなり時間がかかるものとします

このとき途中経過を得る方法はないのでしょうか?
現在,何%くらい検索がすすんでいて,
あと何秒くらいで終わるよ,とかいう情報です
721NAME IS NULL:2005/11/16(水) 18:45:16 ID:???
>>720
そんなことするより、チューニングすることを考えるべきかと。
インデックスやSQLの見直しなど含め。
722NAME IS NULL:2005/11/16(水) 18:50:39 ID:???
>>720
explainの結果から求めるとか?
723NAME IS NULL:2005/11/16(水) 21:20:18 ID:???
>>720
たぶん、理論的に無理。
進捗を計算するには、全体の量が先に分からないといけないのに、
全体の量が分かるのは、すべての処理が終わってからだから。

ごく単純なシーケンシャルスキャンなら、ある程度は推定できるが、
汎用的な方法は無いと思う。
724NAME IS NULL:2005/11/16(水) 23:26:48 ID:UHmoqGjy
explain analyze でいいんじゃない?
どの部分で時間がかかっているかわかるはずだけど。
725NAME IS NULL:2005/11/17(木) 23:21:50 ID:???
Count(*) してからサーバーカーソルを使うとか

お勧めはしないけど。
726NAME IS NULL:2005/11/18(金) 00:02:36 ID:???
多分>>720は分析のためではなくて、ダウンロードとかで
「あと何秒です」というような表示をするのと同じようなことを、
検索処理でユーザに対して表示したいのかなと、思ってる。

当り?
727720:2005/11/18(金) 10:41:07 ID:orrnrvws
>>726 のおっしゃる通りで,
プログラム上で時間のかかる検索をした場合に
たとえばプログレスバーっていうんですかね,
あの棒グラフみたいなやつで表示するとか,
グラフィカルじゃなくても数値でもいいんですが,
とにかく途中経過が表示されるのとされないのでは
ユーザの使い勝手がまったく違うわけです.

検索が常に一瞬でおわるならば,
この必要性はないのですが,
仕様上どうしても時間のかかる検索をする
必要があるケースがあるわけです


explain は承知していますが,
この目的にはあまり役に立ちません
728NAME IS NULL:2005/11/18(金) 10:46:17 ID:???
>>727
どれぐらいかかるのか知らないけど、30秒以上かかるようなら
設計が悪いだけだと思うけどなぁ。
1億件のjoinとかでもないだろうし・・・・
729NAME IS NULL:2005/11/18(金) 10:46:22 ID:???
一度実行して時間を計っておく。
730720:2005/11/18(金) 11:05:15 ID:orrnrvws
>>728
1000万件を JOIN とかなしで,ただ SELECT して
いるだけなんですが,
1分くらいかかることがあります

もちろんインデックスは適切にはられていますし,
実際に使われています

データベース構造を見直す余地があるのでしょうかね
731NAME IS NULL:2005/11/18(金) 11:18:38 ID:YFouVtEV
データベースに接続する時に

function requires at least protocol version 3.0

という上記のエラーが発生して接続できません。

ドライバ関連は8.1のインストーラでドライバ関連は全て更新しています。

接続先はLinuxで
プロバイダは"PostgreSQL"
データソースは IPアドレスで指定しています。192.168.x.xxx

何故このエラーが出て、どうすれば解決可能かお分かりになる方いらっしゃいますか?

VB6 SP6
XP SP2
環境下で作成しています。

よろしくお願いします。
732NAME IS NULL:2005/11/18(金) 12:37:05 ID:???
LinuxのPostgreSQLのバージョンと、ODBCのドライバのバージョンは?
733NAME IS NULL:2005/11/18(金) 12:43:11 ID:???
>>730
joinでもスループット重視とレスポンス重視で異なるよ

レスポンス重視だとネステッドループ使うとかそんな感じ
ただし、スループットは大きく落ちる
734NAME IS NULL:2005/11/18(金) 12:50:23 ID:???
>>730
俺はSQL書きではないので、どうすれば良いとはいえないのだが、
1000万件で1分だと、なにかシステム的に問題があることを疑って、
調査することをするべきだと思う。

本当にシーケンシャルサーチになってない?
CPU使用率、負荷平均はどう?
735289:2005/11/18(金) 12:50:45 ID:???
>>730
1000万件で1分かかるなら構造の見直しが必要でしょう。
hashやcolumnを増やすってのはどでしょ?
サンプルデータがないので何とも言えませんが。
736NAME IS NULL:2005/11/18(金) 13:11:38 ID:PzJh+s38
>>733

Postgres Ver8.1
ODBCドライバ PostgreSQL Ver7.03.02.08

です。

現在ODBCデータソースからの接続は可能で
Postgres8.1ドライバのインストール時にOLDBプロバイダ含め
データベースドライバは全てインストールしています。

書き忘れなのですが ADO接続で、出切ればDBコネクションを
開始する際はユーザ毎に設定が必要で手間がかるので
データソースを使用したくないと考えています。

不可能であれば仕方ないとはおもうのですが
OLDBプロバイダが存在するので可能だとはおもいますが・・・

737NAME IS NULL:2005/11/18(金) 13:36:33 ID:???
>>736
ODBCでつないだこと無いけど、Ver8.1にVer7.03.02.08でつながるのか?
738NAME IS NULL:2005/11/18(金) 13:53:33 ID:PzJh+s38
>>736

データソースでそのドライバを指定しているんですが
接続できています。
739NAME IS NULL:2005/11/18(金) 13:55:44 ID:???
>>736
8.1をインストールしたPCで確認してみたらODBCドライバはこうなってた。
 PostgreSQL ANSI  8.01.01.00
 PostgreSQL Unicode 8.01.01.00

Solarisで動作している8.1サーバーへ VB6.0SP6 を使って
OLEDB、ODBCでの接続は共にOKだったよ。
740NAME IS NULL:2005/11/18(金) 14:10:06 ID:???
function requires at least protocol version 3.0
機能は、少なくともプロトコル版3.0を必要とします
741NAME IS NULL:2005/11/18(金) 14:11:23 ID:???
8.1からいろいろ変わってるみたいだからな。
psqlでもバージョン違いは苦しい。
pgAdminIIIも1.4にしないとね
742736:2005/11/18(金) 14:46:26 ID:PzJh+s38
レスサンクスです

なるほど・・・とりあえずもっかいドライバ周り確認した方がよさげですね
あとGUIツールも・・・

ありがとうございました。

743NAME IS NULL:2005/11/18(金) 16:15:38 ID:???
SunがSolarisでPostgreSQLが正式サポート来たね
まずはSolaris版を正式に出して
今後はOSにバンドルもされるそうだ
744NAME IS NULL:2005/11/18(金) 17:01:32 ID:???
PostgreSQL 7.4 から、protocol version 3 を使うようになったんだよね?
745NAME IS NULL:2005/11/18(金) 17:10:30 ID:???
>>744
そうだね。下位互換は維持されてるから接続は出来たんだね。
746NAME IS NULL:2005/11/19(土) 18:11:16 ID:???
CGI+PostGresの環境で
CGIにSQLを組み込みたいのですが、どうすれよいのでしょうか?

参考になるサイトなどがありましたら教えてください。
747NAME IS NULL:2005/11/19(土) 19:44:20 ID:???
>>746
CGIが言語を指しているのではないことは知ってる?

Perlを使うならこれが参考になる
ttp://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2005-09,GGGL:ja&q=Perl+postgres
748NAME IS NULL:2005/11/20(日) 04:06:11 ID:aQbjk/iW
すみませんが教えてください
Postgresでテーブルにカラム追加する際にあるカラムの前とか後とか指定する方法ってないのでしょうか?
ALTER TABLE hoge ADD COLUMN hoge_colmn BEFORE column_A みたいな・・・
もし無理だとすると、DROP/CREATE と、新規作成するのですか?
749NAME IS NULL:2005/11/20(日) 09:15:03 ID:???
>>748
たまにその方法を知りたいと思うけど、基本的には
列指定してデータ取り出すのが普通なのであまり用がないんだよな('A`)
750NAME IS NULL:2005/11/20(日) 09:24:05 ID:???
前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。
751NAME IS NULL:2005/11/20(日) 09:32:51 ID:aQbjk/iW
>前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。
激しく質問の意味を取り違えている感があるが・・・どういうことか意味わからん
752NAME IS NULL:2005/11/20(日) 09:33:52 ID:???
ああ、取り違えてたwwwwwwwwwww
753NAME IS NULL:2005/11/20(日) 09:43:56 ID:???
いや、いいんすよありがとうっす

まぁプログラム側では意識しないからいいものの
DBツールとかで表示すると追加カラムが一番最後になるので
なんか気持ち悪いんっすよね
自分で使うDBならいいんですが 業務で改修が入りカラム追加になったんです
で、上の人間がやることなすことケチつける人で
仕様書とかも丁寧に書けば「ここまで詳しく書くな」雑に書けば「もっと詳しく」と言う人なんすよ
多分今回も、カラムが最後にあると なんか文句言ってくんじゃね-かなーと思って鬱
754NAME IS NULL:2005/11/20(日) 16:29:08 ID:P2wr5H2F
>753
DROP/CREATE

やることなすことケチつけてくる人なら鬱になる”必要が”ないじゃんw
意味わかる?
755NAME IS NULL:2005/11/20(日) 17:04:03 ID:???
>>754
え?というと・・・?
ちょっと意味わかんない・・・
どの道言われるので
開き直れってことですか?
756754:2005/11/20(日) 17:17:08 ID:???
>755
開き直ると、トラブルになるので絶対やってはダメ。

ここまで書けばわかるよね?
757NAME IS NULL:2005/11/20(日) 18:04:08 ID:???
>>753
列を入れ替えるだけのVIEWを噛ませばいいんじゃない?
758NAME IS NULL:2005/11/21(月) 19:23:17 ID:+7kqnA7Y
すみませんが、教えてください。

7.0の頃、time型と、interval型を足す(+)と、interval型で帰ってきたんですが、
7.3?以降、これはtime型で帰ってくるように変更になったのでしょうか?

7.0: '20:00'::time + '10:00'  → '1 06:00'
7.3: '20:00'::time + '10:00'  → '06:00'

これ、7.0と同じ動きに変更するようなパラメーターってないですよねぇ・・・はぁ。

後、7.3 以降の、interval型で24時間越えた値の結果って、
'1 day 06:00'
って帰ってくるんですけど、これを
'1 06:00'
のような、7.0と同じ形式にすることはできないのでしょうか?
759NAME IS NULL:2005/11/21(月) 19:38:45 ID:r+b3/Pk8
>>758

timeをintervalに変えたらどうでしょう。たとえば

template1=> select interval '20:00' + interval '10:00';
?column?
-------------
1 day 06:00
(1 row)
760759:2005/11/21(月) 19:44:13 ID:r+b3/Pk8
ごめん、質問に答えてないじゃん。これでどう?

template1=> select to_char(interval '20:00' + interval '10:00', 'DD HH24:MI');
to_char
----------
01 06:00
(1 row)
761758:2005/11/21(月) 19:53:31 ID:+7kqnA7Y
>>759
どうもありがとう。

ちょっと試してみました。
select to_char(interval '20:00' + interval '10:00', 'DD HH24:MI');
確かに、1日越えた結果は望みどおりの結果になるんですが、
to_char
----------
01 06:00
一日以下だと、今度は
to_char
----------
00 06:00
になっちゃうんですよ。うーん。
前のバージョンだと、一日以下の場合
to_char
----------
06:00
のような表示なんですよね。

この結果を前提としているところがいくつもあって悩んでます・・・
762NAME IS NULL:2005/11/21(月) 20:02:48 ID:???
>>761
結果が1日以下なら'HH24:MI'にするようCASEで切り替え。
763NAME IS NULL:2005/11/21(月) 20:08:20 ID:???
>>762
ありがと。
やっぱ、そうなりますよね・・・
そうすると今度は、マイナス値の場合どうするか?とか、
いろいろcareしなければならなくなるんですよね。
やっぱり簡単には行かないんですねぇ。
ちょっと、別の場所でどうにかならないか、考えてみます。
ありがとうございました。
764NAME IS NULL:2005/11/22(火) 02:39:19 ID:???
SELECT FOR UPDATEでロックされている行を
取得しないようなSELECT文ってどうやって書くの

A B *
A C
ってあってほぼ同時に*の行を参照する2つの
アプリケーションあった場合一方だけ情報とれて
もう一方は空を返すようなことってできますか?
うまく説明できんけど2つ同じ情報拾ってきて
DELETEなりUPDATEするとおかしくなると思うんだけど
こうゆう場合ってどうすればいいの?
765NAME IS NULL:2005/11/22(火) 08:34:41 ID:???
>>764
言っていることがイマイチ理解できないんだけど、
同時に SELECT, DELETE, UPDATE 「できないようにするため」にロックかけるんでしょ?
766NAME IS NULL:2005/11/22(火) 14:08:40 ID:???
2つ目のSELECT FOR UPDATEは、最初のやつの
トランザクションが完了するまで待たされるよ。
767NAME IS NULL:2005/11/22(火) 17:15:24 ID:???
ちなみに2つ目のSELECTに「FOR UPDATE」句が無い場合は
待たされなくて、1つめのトランザクション開始前の情報が
返される。
768NAME IS NULL:2005/11/22(火) 22:10:06 ID:???
さらに SERIALIZABLE にしておけば、更新とオーバーラップしても問題ない。
769NAME IS NULL:2005/11/23(水) 07:29:23 ID:???
つまり、排他制御関係を、もう一度勉強し直すべきだということだな、まじめな話。
770NAME IS NULL:2005/11/25(金) 22:37:33 ID:4JCvO8XR
自分や信頼のおける少数以外にはデータベースの内容を閲覧させたくない場合、
パスワードで制限かける他にデータベース自体を暗号化して読みだしてもなんら意味をなさないように
することはできますか?
771NAME IS NULL:2005/11/25(金) 23:13:02 ID:???
一度やってみればいいとおもう。出来るんじゃないかと思う方法で。
772NAME IS NULL:2005/11/25(金) 23:49:58 ID:???
md5やshaで暗号化しちゃいなよ大島
773NAME IS NULL:2005/11/26(土) 11:58:52 ID:???
YOU、やっちゃいなよ
774NAME IS NULL:2005/11/26(土) 13:35:41 ID:???
>770
信頼のおけるメンバーの方を増やしていけばいいんじゃね?
775NAME IS NULL:2005/11/26(土) 22:14:19 ID:???
>>772
md5やshaは「暗号化」じゃないと何度言ったら…
776NAME IS NULL:2005/11/27(日) 01:14:42 ID:???
最近はハッシュ関数すら知らないヤツが多いな
777NAME IS NULL:2005/11/27(日) 13:30:59 ID:???
>776
YOU、だいじょうぶか?
778NAME IS NULL:2005/11/27(日) 14:23:41 ID:???
>>775
復元できない暗号化なんてありえないからなぁ・・・

じゃあなんて言えばいいだろう? 『合言葉』か?
779NAME IS NULL:2005/11/28(月) 10:33:54 ID:???
Digest=消化
780NAME IS NULL:2005/11/28(月) 11:41:00 ID:???
やってみちゃったことがある俺ガイル>ハッシュ化データ格納

無差別にハッシュ化すると検索がめんどくさくなるので注意。
検索条件に該当するカラムがハッシュ化されてると、テーブルを全部セレクトして
プログラムサイドでデコードしてから検索ってなる。
781NAME IS NULL:2005/11/28(月) 12:45:37 ID:???
postgresql.conf
cryptogram = true
crypt_column_type = 'text,varchar'
後はpostmaster起動時に--crypt_key hogehoge
782NAME IS NULL:2005/11/29(火) 13:18:03 ID:???
>781
これは、DBのデータファイルをダンプしても
内容がわからない様にするってことですよね?
783NAME IS NULL:2005/11/29(火) 18:58:43 ID:???
>データベース自体を暗号化して読みだしてもなんら意味をなさないように
つーことだな
784NAME IS NULL:2005/11/29(火) 19:12:55 ID:???
普通に考えてだれでもファイルシステム触れる権限あるほうが問題じゃね?
785NAME IS NULL:2005/11/29(火) 21:11:58 ID:???
通常ならpostgresユーザーしか触れないはずだしな
786NAME IS NULL:2005/11/29(火) 21:13:24 ID:???
教えて下さい。

環境 サーバ Xeon 3.0 2GBメモリ Free BSD 6.0/PostgreSql 8.1/ODBC 08.01.0101/
クライアント Win XP Pro SP2/Access2000

で、updateの処理に異常に時間がかかっています。ODBCのキャッシュをデフォルトの
100=>65536にアップして、「Declare〜Fetchを使用する」にもチェックをいれているので
すが、キャッシュの値をいじっても、全く効果が出ません。(キャッシュ値を変更するたびに
テーブルリンクの更新をかけたり、リブートしていますが変化ありません)

ログを見ると、キャッシュの値はちゃんと更新されていました。

Global Options: Version='08.01.0101', fetch=65536, socket=0, unknown_sizes=254, max_varchar_size=8190,
max_longvarchar_size=327924disable_optimizer=1, ksqo=1, unique_index=1, use_declarefetch=1
text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1 NAMEDATALEN=64
extra_systable_prefixes='dd_;', conn_settings='' conn_encoding='OTHER'
conn=167890952, query='BEGIN'conn=167890952, query='declare SQL_CUR0A016428 cursor for select version()'
conn=167890952, query='fetch 65536 in SQL_CUR0A016428'
[ PostgreSQL version string = 'PostgreSQL 8.1.0 on i386-portbld-freebsd6.0, compiled by GCC cc (GCC) 3.4.4 [FreeBSD] 20050518' ]
[ PostgreSQL version number = '8.1' ]

キャッシュではupdateのパフォーマンスは改善できないのでしょうか?
もしくは、PostgreSql側にも何か設定がいるのでしょうか?
何かヒントがあれば教えて下さい。よろしくお願いします。
787NAME IS NULL:2005/11/30(水) 02:08:38 ID:???
>>786
とりあえずクエリーに問題が無いかチェック。
SELECT -> ループで UPDATE ……という具合ではどう頑張ってもパフォーマンス落ちるし。
788786:2005/11/30(水) 07:42:24 ID:???
>>787

ありがとうございます。

複数行の伝票データを3つのテーブル同時に更新するので、updateのループに
なっています。ひとつのUpdateが今の半分になってくれるだけでも嬉しいのですが
設定よりは、アルゴリズムを見直さないとならないと駄目という事ですかね。

a
789NAME IS NULL:2005/11/30(水) 08:13:40 ID:???
>>788
indexの張り方が悪いんじゃ?
790NAME IS NULL:2005/11/30(水) 09:25:03 ID:???
>>789
テーブルの設計もね
791NAME IS NULL:2005/11/30(水) 10:14:43 ID:???
標準PostgreSQL RDBMSの理解からWebアプリケーションの開発と運用まで
http://www.amazon.co.jp/exec/obidos/ASIN/4797332034/
792NAME IS NULL:2005/11/30(水) 10:35:16 ID:???
>>788
トランザクションにしてる?
してるならどこからどこまでをはさんでる?
793786:2005/11/30(水) 11:24:53 ID:???
>>789 >>790

そう、いわれるだろうなと覚悟してました。

ソースに手を入れないで、設定だけで改善できないかと思ったのですが甘かったですね。

改めて調べたら、ODBCのキャッシュは「列」だそうで、65536も確保しても意味がないそうで、
今100〜500までちょこちょこ変化させているんですが、これでも全然速度に変化がありません。

クライアントのMTUまで調べちゃいました。

>>792

ソースを書いたのが私ではないので、ちょっと後で確認します。



794NAME IS NULL:2005/11/30(水) 12:50:09 ID:???
>782 に対する質問の内容を把握している
>784, 785 さんに質問です。

root は見れちゃいますよね?
root だからダンプして内容みても構わないということには
必ずしもならないと思うのですよ。
795NAME IS NULL:2005/11/30(水) 13:25:18 ID:???
rootって復旧とか含めて最高権限だから逆に見られないとまずいのでは?
796NAME IS NULL:2005/11/30(水) 13:45:37 ID:???
>>794
誰でもrootになれるって状況がむしろ望ましくないのでは。

サーバの管理権限等をめんどくさがらずにユーザ毎に細かくsudoの権限とか設定するのが
理想じゃないかと。若干スレ違いな気はしますが。
797NAME IS NULL:2005/11/30(水) 15:43:30 ID:???
そのマシンの管理者にも見られたくないってんなら
暗号化しかないだろうな。レンタルサーバ?
798NAME IS NULL:2005/11/30(水) 16:36:02 ID:???
すいませんが質問させてください。

共有メモリの設定に関してなんですが、インストールした標準のバッファ容量って
64*8KB=512KBでいいんですよね?
この標準の設定だと、PostgreSQLは、データのキャッシュ領域として512KBしか
使えないってことでいいんでしょうか?足りなければ勝手に拡張したりとかしないですよね?

それと、ソートメモリって共有メモリの中にとる訳じゃないですよね?

PostgresSQLのバージョンは8.0です。
799794:2005/11/30(水) 19:42:54 ID:???
ほんとトンチンカンな人が湧いてきますねw

おっと、>797さんは別よ。
800NAME IS NULL:2005/12/01(木) 09:56:29 ID:WWfvxLeC
レンタルサーバーを使って何かたくらんでいるから、サーバーの管理者に
見られたくないと。要するに、root と信頼関係がないということだ。
801NAME IS NULL:2005/12/01(木) 12:04:01 ID:???
技術的な話しと運用の話しを切り分けられないのw
802NAME IS NULL:2005/12/01(木) 12:49:24 ID:???
794必死だな
803NAME IS NULL:2005/12/01(木) 20:50:30 ID:???
>802
794じゃないが切り分けできてねーじゃん

>795と>796を800回読んでからカキコしなよ
804NAME IS NULL:2005/12/02(金) 08:28:48 ID:???
ファイルを参照できるのと内容を理解できるのは違うと思う。。。
805NAME IS NULL:2005/12/02(金) 18:53:06 ID:???
まあ、いくらファイルシステム上のデータを暗号化しようとも、
root様ならpostmasterプロセスのメモリを直接覗いて暗号キーgetとか
何でもありだからな。
806NAME IS NULL:2005/12/02(金) 19:05:12 ID:???
まぁ実際レン鯖のrootがそこまで出来るスキル持っているかどうかは別だがw
807NAME IS NULL:2005/12/02(金) 20:51:16 ID:???
>805
なるほどね〜
808NAME IS NULL:2005/12/02(金) 23:26:58 ID:???
>>806
かりに持っているとして、わざわざそんなことをするとしたら、警察が
裁判所の令状を持ってきて調査しなきゃいかんような場合だろう。
ま、794が何をたくらんでいるのかは知らんけど、レンタルサーバー
なんか使うのはやめて、固定IPをもらって、いつでも根こそぎ破壊できる
サーバーを手元に構築したら? 通信も暗号化しようね。令状があれば、
プロバイダはパケットをダンプして警察に提出するぞ。
809デフォルトの名無しさん:2005/12/03(土) 00:43:48 ID:pAMqxFb4
認定試験のCE silverとろうとおもうのだけど、取ってる人いますか?
社内での評価は未知数、Oracleのプラチナ持ってるけど、この資格も
難化する前に取っておこうかなと思ってます。
810NAME IS NULL:2005/12/03(土) 15:39:14 ID:???
>808
想像力が香ばしいのぉw

>809
典型的な(ry
811NAME IS NULL:2005/12/05(月) 18:25:15 ID:???
クラッキングの脅威とか
812NAME IS NULL:2005/12/07(水) 00:09:17 ID:LRnWbgRA

C:\Program Files\PostgreSQL\8.1\jdbc
の下にあるファイルを
C:\Program Files\Java\jdk1.5.0_06\lib
の下にコピーして

Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "ID", "PASS");

としても

java.lang.ClassNotFoundException: org.postgresql.Driver

となってエラーになります。

なぜ?
813NAME IS NULL:2005/12/07(水) 00:23:13 ID:???
>>812
置く場所が違うから JREの方に置いてね
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/findingclasses.html
814NAME IS NULL:2005/12/07(水) 00:26:49 ID:???
>>812
アプリのクラスパスに追加したほうがいいかと
815NAME IS NULL:2005/12/08(木) 03:18:48 ID:???
pgAdminで「制約」から主キーやユニークキーを選択→リフレッシュすると、
右カラムにインデックス中の1番上のものとして表示される。
実害はないのかもしれないけれど、気持ち悪い・・・既出なのかも

WinXP SP2
PostgreSQL8.1
pgAdmin III 1.4.0
816NAME IS NULL:2005/12/08(木) 11:41:24 ID:???
>>815
そうなる場合とならない場合があるね
817NAME IS NULL:2005/12/10(土) 00:32:18 ID:GfVC3Kdb
ものすごく質問させてください。

現在データベースの中に訂正したい部分が一箇所あって
Puttyでアクセスし、修正しようとしていたのですが

「ERROR: syntax error at or near "name" at character 21」

とでてしまい、修正できません。

update shoseki_tbl name='データ' where id=000101;

ちなみにデータの部分は日本語です。
もしかして、出来ないことが正常でしょうか・・・

WinXP SP2
PostgreSQL 7.4.7
Putty

818NAME IS NULL:2005/12/10(土) 00:37:19 ID:???
>>817
update shoseki_tbl SET name='データ' where id=000101;
819NAME IS NULL:2005/12/10(土) 13:48:29 ID:???
psql 使ってるなら、\h UPDATE とかで書式調べようぜ
さらに、readline組み込んであれば、TABで補間できるぞい
820NAME IS NULL:2005/12/11(日) 15:09:54 ID:???
su - postgres
ってやったら
could not open session
ってなった。なんで?
821NAME IS NULL:2005/12/11(日) 17:03:19 ID:???
Permission denied が could not open session の前に出てるなら、
Permission denied といわれているディレクトリのパーミッションを確認。
何も出てないなら /etc のパーミッションが変なのでは?
755 とかにしとけ。
822NAME IS NULL:2005/12/11(日) 20:50:17 ID:???
すみません、まだ初めて間もないんですが教えてください。
外注で作ったデータベースを追加することになったんですが

外注の人が置いていったTeratermでアクセスして
日本語を入力すると消えてしまいます・・・
日本語ってどうやれば入力できますか?
823NAME IS NULL:2005/12/11(日) 20:58:54 ID:???
Postgres以前にDBがどういうものかわかってるのかな
なんかしらないで触って壊しそうな感じがするんだけど
824NAME IS NULL:2005/12/12(月) 10:50:22 ID:???
>>822
自分で触ろうとせずに、その外注をふたたび呼びなおすか
別の外注をさがしましょう。
825NAME IS NULL:2005/12/12(月) 11:42:32 ID:???
>>822
日本語パッチあてたreadlineを組み込んでpsqlのリコンパイル
826NAME IS NULL:2005/12/12(月) 11:50:53 ID:???
>>825
そういえばそんな問題もあったね。
psql -n でreadlineを無効にしてもいいんジャマイカ。
827NAME IS NULL:2005/12/12(月) 21:32:29 ID:SNSzaCQ3
質問させてください。

createuser で hogehogeは追加し、
createdb でhogehogeも追加したにもかかわらず、

psql hogehoge hogehoge
と打つと

psql: FATAL: IDENT authentication failed for user "hogehoge"
のように、「hogehoge」はIDENT認証に失敗しましたとエラーが出ます。


これを解消するには、どのような作業が必要なのでしょうか?
828NAME IS NULL:2005/12/12(月) 23:22:10 ID:x77qREp1
他力本願ですみません。

誤ったdelete文でレコードを削除してしまいました・・・
元に戻す方法はあるのでしょうか?

バックアップはとっておらず・・・

誰かお助けください!
829NAME IS NULL:2005/12/12(月) 23:22:49 ID:???
hba.confにhogehogeを追加する
830NAME IS NULL:2005/12/12(月) 23:23:32 ID:???
>828
無い
残念!
831827:2005/12/12(月) 23:28:03 ID:SNSzaCQ3
>>829
お答えありがとうございました。

pg_hba.conf
には
↓のように設定しているんですよ。
local all all trust
host all all 127.0.0.1 255.255.255.255 trust

これに加えるってどんな感じなんでしょうか?
832NAME IS NULL:2005/12/13(火) 00:06:51 ID:???
>>831
host all all 127.0.0.1 255.255.255.255 password passwd
だろ氏ね
833NAME IS NULL:2005/12/13(火) 00:38:22 ID:???
>>828
pg_resetxlogで過去に戻してdumpする荒業を耳にしたことがあるが……。
834NAME IS NULL:2005/12/13(火) 00:58:40 ID:tww26Ydt
>833

アリですか・・・!?
835NAME IS NULL:2005/12/13(火) 06:57:35 ID:???
>822
pgAdmin使ったら。簡単だから。

自分でDB作ってゴニョゴニョ試してみたら。
836NAME IS NULL:2005/12/13(火) 10:28:43 ID:61x5iL/O
pg_hba.confを変更した後ってpostgreの再起動だけでいいの?
PCの再起動してたけど・・・
837NAME IS NULL:2005/12/13(火) 11:42:25 ID:???
>>836
というか再読込だけで済む

$ pg_ctl reload
838NAME IS NULL:2005/12/13(火) 15:42:22 ID:u6LlTsRZ
create table tbl (name varchar(40));
のようなテーブルに
name
------------
あああああ
あいうえ
あああ
------------
のようなデータが入っています。
select name from tbl where name='1111';
を実行すると

name
------------
あいうえ
(1 row)
本来なら結果が0件なのですが、文字数が一致するレコードが照会されてしまいます。
原因がわかる方いらっしゃいましたら教えていただけないでしょうか。

PostgreSQL 8.0.4
DB Unicode
839NAME IS NULL:2005/12/13(火) 16:44:30 ID:???
>>838
initdb --no-locale

このスレだけでも何度目だろう。
840NAME IS NULL:2005/12/13(火) 17:46:22 ID:???
>>838
locale=C
841NAME IS NULL:2005/12/14(水) 11:36:09 ID:b0L9OTpe
postgresqlを停止させようと↓を実行しましたが、ストップしません。
# service postgresql stop
Stopping postgresql service: [失敗]

状態は以下のようになっております。
# service postgresql status
postmaster (pid 12415 12414 12413 9129 9128 9123) を実行中...

postmasterを実行すると↓のエラーがでます。
LOG: could not create IPv6 socket: アドレスファミリはプロトコルによってサポートされていません
LOG: could not bind IPv4 socket: アドレスは既に使用中です
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
FATAL: could not create TCP/IP listen socket

postgresqlをstopさせるにはどのような操作をしたらよいでしょうか?
842NAME IS NULL:2005/12/14(水) 13:09:48 ID:???
>>841
shutdown -h now
843NAME IS NULL:2005/12/14(水) 19:18:10 ID:???
PgAdminIII Ver1.4.0 Windows版 SQL開こうとすると落ちる。
PgAdminIII Ver1,4,1 Windows版 改善されてる。
素早い対応ありがとう。中の外国の人。

日本語版サイトのリンク先が1.4.0のままなのは(・A・)イクナイ。
日本語版サイトの中の人も、中の外国の人を見習ってください。
844NAME IS NULL:2005/12/14(水) 21:08:47 ID:???
>>843
日本語版サイトの中の人に直接メールとかで訴える方が素早い対応だと思われます
845NAME IS NULL:2005/12/15(木) 10:11:40 ID:aExHGwzg
RPMでPostgreSQLをアンインストールしようとしたところ、
# rpm -e postgresql-libs-7.xxx
エラー: Failed dependencies:
libpq.so.3 is needed by (installed) perl-DBD-Pg-1.21-2

となりました。
この場合
postgresql-libs-7.xxxはアンインストール出来ないのでしょうか?

DBD、DBIを削除の仕方がよくわかりません。
ググったり、添付のREADMEを読んだりしたのですが、アンインストールの方法が
見つかりませんでした。
846NAME IS NULL:2005/12/15(木) 11:59:45 ID:cPGS0hyY
integerの配列(要素数は一定ではない)で、配列内の要素の合計値を簡単に得ることはできますか?自分で関数でも書くしかないのでしょうか?
847NAME IS NULL:2005/12/15(木) 15:09:13 ID:???
関数書けるなら関数でどうぞ、他に方法はありません
何よりも一般的にはRDBで配列使うようだと既に負けてるんじゃないかなって噂はない?
848846:2005/12/15(木) 16:06:30 ID:cPGS0hyY
>>847
とりあえずplpgsqlで関数書いて解決しました。

やっぱ配列使うと負けですかね?しかし、元になってるデータ(httpでテキストで取ってくる)の種類が数十個あって、それぞれの中に配列でデータが定義されてるんですよね。ものによっては3次元とか。とてもじゃないけど別テーブルになんてやってられんです。
849NAME IS NULL:2005/12/15(木) 16:09:17 ID:???
>>843
同じ1.4.0でも、pgAdminIII単体だと落ちるけど、
PostgreSQL8.1本体についてくるやつは落ちないんだよね。
同じバージョン番号のクセに・・・・
850NAME IS NULL:2005/12/15(木) 16:10:33 ID:???
>>848
>とてもじゃないけど別テーブルになんてやってられんです。

というところが負けなんです
851NAME IS NULL:2005/12/15(木) 16:45:12 ID:QEoAR/CH
配列使ったこと無い。
どういうところが便利なのかさっぱりわからん。
852NAME IS NULL:2005/12/15(木) 17:55:15 ID:???
>>851
ISAMファイルじゃねーんだから普通のシステムだと配列は確実に不便
速度的にも保守性的にもSQLで引くときに関数参照するようだと負けですわ
853NAME IS NULL:2005/12/15(木) 21:04:07 ID:QEoAR/CH
8.1なんですが、7.4のデータを定期的にdblink使って持ってきてます。
ところが、突然、
"could not open relation with OID 12336"
とか出てきて動かなくなりました?
何かご存じないでしょうか・・・

854853:2005/12/16(金) 10:12:13 ID:8XiqYooR
よくわかんないんだけど、データを退避させた後、テーブルを一旦dropして
再作成すると復活しました。
なんかシステムデータが壊れたのかな。。。
855NAME IS NULL:2005/12/16(金) 11:15:02 ID:???
書き込み中のデータを持ってきて中途半端だったんじゃないかな?
856NAME IS NULL:2005/12/16(金) 11:29:56 ID:PTCRuCH7
初心者ですいませんが、
date型のフィールドの比較がうまくできないのですが
WHERE hoge_date < 20040506
でhoge_dateフィールドが20040506以下である場合selectしたいのですがうまく動作しません。宜しくお願いします。
857NAME IS NULL:2005/12/16(金) 11:32:51 ID:???
WHERE hoge_date <= '2004-05-06'

とか?
'06May2004' とかも使えるけど
858NAME IS NULL:2005/12/16(金) 11:35:27 ID:???
'20040506' でも解釈するみたいだな。
859856:2005/12/16(金) 11:42:57 ID:PTCRuCH7
>>857
ハイフンとシングルコーテーションがなかったからか、正常に動作しています。
ありがとうございます。
ちなみにシングルコーテションがなくてもエラーにはならないのですが、
どういった意味でつけているのでしょうか?
860856:2005/12/16(金) 11:44:38 ID:PTCRuCH7
>>858
'20040506'でも正常に動作する事を確認しました。
861NAME IS NULL:2005/12/16(金) 12:10:01 ID:???
SELECT '20040506'::DATE;

  date
----------
2004-05-06
(1 row)

SELECT 20040506::DATE;

ERROR:  cannot cast type integer to date
862NAME IS NULL:2005/12/16(金) 14:59:08 ID:jq8EIR+7
PostgreSQLを
/usr/local/pgsql(古いバージョン)
/usr/local/pgsql8.1(新しいバージョン)
という感じでバージョン8.1をインストールし、パスも通したはずなのに、
psql --version
psql (PostgreSQL) 7.4
と古いバージョン(7.4)が表示されます。
(initdbで新しいバージョンのフォルダを指定したので、DBは新しいものになっている)

バージョンの確認で新しいものが表示されるようにするにはどのようにしたらよいですか?
863NAME IS NULL:2005/12/16(金) 15:00:17 ID:???
>>862
今実行している postmaster の場所は?
ps -ef|grep postmaster
とかで確認
864NAME IS NULL:2005/12/16(金) 15:01:29 ID:???
って、psql内でのバージョンチェックじゃなくて
psqlそのもののバージョンか・・・

which psql で、どのpsqlが起動するかチェック
865863,864:2005/12/16(金) 15:24:43 ID:???
>>862
えっと、この際psqlのバージョンはあまり問題ではない。
まあ8.1からは構造が変わったので、古いpsqlだと不便ではあるが。

で、dbのバージョンが知りたいなら
SELECT version();
でわかるし、新しいpsqlが使いたいなら、フルパスで指定するか
PATHの再確認。

あと、initdb はどっちのコマンドを使った?
866856:2005/12/16(金) 17:27:30 ID:PTCRuCH7
>>861
どうやらシングルコーテーションがないと型の認識ができないみたいですね。
新たな問題が発生しまして、数時間なやんでおります。
またDATE型の比較なのですが、
フィールドhoge_startからフィールドhoge_endがあり、
その範囲にtodayが入っているかを下記SQLで試しました。
WHERE hoge_start >= 'today' AND hoge_end <= 'today'
なぜか一件もselectできません。
もちろんダミーでデータは入れてあります。
867NAME IS NULL:2005/12/16(金) 17:39:36 ID:???
>>866


startより前でかつendより後なんて存在しないだろう
868NAME IS NULL:2005/12/16(金) 17:40:36 ID:???
逆じゃないのか?
869NAME IS NULL:2005/12/16(金) 17:42:43 ID:???
こういう書き方もある

WHERE 'today' BETWEEN hoge_start AND hoge_end
870856:2005/12/16(金) 18:05:01 ID:PTCRuCH7
>>867
>>868
あっ、ほんとだ逆でした。。。アホだ。
>>869
わかりやすい文法ですね、試してみます。
871NAME IS NULL:2005/12/16(金) 18:16:03 ID:???
>>866
>WHERE hoge_start >= 'today' AND hoge_end <= 'today'
穴が開くまでよーく眺めてみろ。

その上でbetween句を使え。
872NAME IS NULL:2005/12/16(金) 18:35:45 ID:???
>>871
時差?
873NAME IS NULL:2005/12/16(金) 18:58:58 ID:???
>>872
きっと気づくまで時間がかかったんだろ。
そっとしておいてやれ。
bitweenが句じゃないのも(ry
874NAME IS NULL:2005/12/16(金) 19:03:41 ID:???
質問してもよろしいでしょうか。

PostgresQL 8.1 jp
Windows XP

文字コードUTF-8 ロケールC のデータベース上のテーブルに
psqlを \encoding UTF8 として日本語文字を含むINSERTを行うと、

“invalid UTF-8 byte sequence detected”

と表示され追加できません。

(DOSプロンプト画面のコードページを932から65001へ変えて
 同様の操作をすると“Not enough memory”が表示されます)

\encoding SJIS では(SJISに無い字以外は)正しく動作しているようです。

他に試せるWindowsやpsqlの設定などありましたらご教示ください。
875NAME IS NULL:2005/12/16(金) 20:15:16 ID:???
>>873
bitween (・∀・)ニヤニヤ
876873:2005/12/16(金) 21:00:19 ID:???
( ̄□ ̄;)!!

実際リアルでもたまにやってしまうんだコレ...orz
877NAME IS NULL:2005/12/17(土) 17:53:09 ID:8vIYQ3Me
ソースからインストールしたいのですが、
インストールするフォルダをあらかじめ指定し、パスを通す方法ってどうやるのですか?
878NAME IS NULL:2005/12/17(土) 18:42:58 ID:5ik2MU5K
>>877
PostgresSQLを一回も使ったことが無い俺が言うことだから当てにならんが・・・
普通に--prefix=/好きな場所/じゃあだめなの?
879877:2005/12/17(土) 19:10:42 ID:???
あ、すいません。なんか勘違いしてました。
普通に出来ました。
880NAME IS NULL:2005/12/18(日) 16:53:58 ID:AOIsB/qI
サーバーを再起動した時に、自動的にPosgreSQLが立ち上がり、DBを使えるようになるように設定するのってどうしたらいいですか?
881NAME IS NULL:2005/12/18(日) 17:07:42 ID:???
>>880
環境を言わんと教えてもらえんよ
882NAME IS NULL:2005/12/18(日) 17:30:17 ID:EmfZ6W7K
テーブルをCREATEする時、
既に同じテーブル名があるかどうか判断してから、
CREATEしたいのですが、
判断の方法がわかりません。
すいませんが、教えてもらえますでしょうか。
883880:2005/12/18(日) 17:44:28 ID:AOIsB/qI
MiracleLinuxです
サーバーを再起動した時に、自動的にPosgreSQLが立ち上がり、DBを使えるようになるように設定するのってどうしたらいいですか?
884NAME IS NULL:2005/12/18(日) 18:23:38 ID:???
MiracleLinuxはよくわからんがLinux系なら /etc/rc.d/init.d/ と services のオンオフ設定じゃないの?
READMEとかINSTALLとかその辺に載ってるはずだよ
885NAME IS NULL:2005/12/18(日) 18:40:44 ID:???
Linux系の起動スクリプトは
ソースディレクトリ/contrib/start-scripts/linux
にある。コレを/etc/rc.d/init.d/にリネームして入れて
起動するランレベルに合わせてごにょごにょすれば出来るんじゃね。
つーか、Miracleにバイナリパッケージは用意されて無いんかな?
886NAME IS NULL:2005/12/19(月) 14:51:26 ID:???
>>873
わかるなぁ。
漏れもしょっちゅう
WEHREとかCOUTNってやるんだ。。。
887NAME IS NULL:2005/12/19(月) 16:25:27 ID:???
>>883
>>884-885の言うとおり

postgresql-X.X.X/contrib/start-scripts/linux を postgres とかの
名前にして/etc/init.d にほうりこんで実行属性を付け、それを
/etc/rc2.d と/etc/rc3.d にSxx(xxは数字)、例えば S99postgres という名前でリンクすればいい
888887:2005/12/19(月) 16:26:31 ID:???
つーか、postgresql-X.X.X/contrib/start-scripts/linux の先頭に書いてあるね、やりかた
889NAME IS NULL:2005/12/19(月) 18:46:32 ID:???
>>873
>>886
俺はよく全角スペース入れちゃったりしてますよhehehe('A`)
890NAME IS NULL:2005/12/19(月) 23:30:21 ID:???
>>889
マなら全角スペースはデフォルトでは日本語入力モードでもでないように
するもんじゃまいか?
891NAME IS NULL:2005/12/20(火) 00:46:28 ID:???
PostgreSQLは日本語を無難に扱えると噂では聞きますが、↓このような現象はPostgreSQLでは起こらないのでしょうか?
http://pc8.2ch.net/test/read.cgi/db/1133166614/293
892NAME IS NULL:2005/12/20(火) 01:41:33 ID:sFZphDw3
こんばんは。

│家族ID│家族内順序│筆頭│氏名ふりがな│氏名│

上記のようなフィールドを持つテーブルをソートしたいのですが、うまいやり方が見つかりません。

条件として、筆頭にフラグが立っている人の氏名ふりがなでソートし、
しかも、筆頭にフラグが立っていない人は同じ家族IDを持つ筆頭の下に家族内順序の順に
ぶらさげたいのです。

問い合わせ結果のイメージはこんな感じです。

2,1,true,ああああ,嗚呼亜阿
2,2,false,ああほほ,嗚呼歩帆
3,1,false,あいわわ,和我
3,2,true,あいいい,阿井胃医
1,1,true,あいうう,阿井卯兎

今は先に筆頭にフラグが立っている人だけ先に五十音順に家族IDを抽出して、
筆頭のレコード数だけループさせて全員分のレコードを取り出していますが、
問い合わせ回数が多くて処理に時間がかかりすぎているので、できれば1回の問い合わせで
済ませたいのです。

こんな条件を満たすSQL文って作れますか?

わかる方、よろしくお願いします。
893NAME IS NULL:2005/12/20(火) 01:42:24 ID:???
質問します。
環境は WinndowsXP で PostgreSQL8.1
jspファイルからデータベースへアクセスを行うシステムを作りたいのですが、
データベース稼動の確認を行う為に参考Webサイト
http://www.atmarkit.co.jp/fjava/rensai/jsp10/jsp10.html
から拝借したソースで確認したところ、(ソースのuser、passwordなどは編集済み)
org.postgresql.util.PSQLException: Connection refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
というエラーが発生しました。
ポートはソースの通り5432を変更せず、TCP/IP接続の為に
http://homepage2.nifty.com/pcmemo/windows/win10.html
を見てpostgresql.confの編集は完了しています。

postgresql.conf内容一部
listen_addresses = '***.**.***.***'# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
port = 5432

再起動して確認してもエラーは変わらず悩んでいます。

あと、スタートメニューからpg_hba.confを起動した場合、
何度編集して保存しても、再度開いた場合、表示が元に戻っています。
中身を確認した所、編集した内容が追加されてるのでOKなのでしょうか?

長文での質問ですが、どなたかご教授お願い致します。
894NAME IS NULL:2005/12/20(火) 04:28:04 ID:???
>>892
> 条件として、筆頭にフラグが立っている人の氏名ふりがなでソートし、
> しかも、筆頭にフラグが立っていない人は同じ家族IDを持つ筆頭の下に家族内順序の順に

だと、

> 3,1,false,あいわわ,和我
> 3,2,true,あいいい,阿井胃医

これって逆じゃないの? 家族内は家族内順序だけでソートでいいのか?

一発だとRECURSIVEあたりがサポートされないとむりぽだと思う。
ストアドを使えばいけるだろうけど。SQLだけなら一時シーケンスを使って、

CREATE TEMP SEQUENCE temp_seq;
SELECT T2.* FROM
(SELECT nextval('temp_seq')AS seq,家族ID FROM table WHERE 筆頭 = true ORDER BY ふりがな)AS T1,
JOIN (SELECT * FROM table )AS T2 USING(家族ID) ORDER BY seq,家族内順序;
でいけそう。家族内の先頭に筆頭を持ってくるならORDER BY seq,筆頭 DESC,家族内順序;

条件としては、同一家族IDに筆頭=trueは一人のみ。
895NAME IS NULL:2005/12/20(火) 04:43:27 ID:???
>>893
たまに勘違いする香具師が居るんだけど、
listen_addresses は、PostgreSQL自身が動いているIPアドレスを設定するんだよ。

例えば、192.168.1.1でPostgreSQLが動いていて、
192.168.1.10から接続する場合、listen_addressesは192.168.1.1を設定する。
複数のアドレスがあてられている場合は注意。

> 何度編集して保存しても、再度開いた場合、表示が元に戻っています。
> 中身を確認した所、編集した内容が追加されてるのでOKなのでしょうか?

なんかおかしいが、data/pg_hba.confを直接開いてお望み通りになってればいいんじゃね。
pg_hbaで蹴られる場合はエラーメッセージも別だったと思うし。


>>894に補足。これでも遅い場合、家族IDにINDEXを振ってみれば。
もともとのループ処理でもそこそこ速くなるかも。
896NAME IS NULL:2005/12/20(火) 05:03:41 ID:???
>>895
ってことはまだTCP/IP接続ができていないんですね。
まだずっとやってたんですが、問題が分って希望が見えました!
ありがとうございました。頑張ってみます
897896:2005/12/20(火) 05:07:30 ID:???
あ、そういえば
#tcpip_socket = false

tcpip_socket = true
に書き換えろというのを度々目にしましたが、postgresql.confに
#tcpip_socket = false自体がないようです・・・。
Ctrl + Fで探してみましたが、やはりありませんでした。
898NAME IS NULL:2005/12/20(火) 05:11:15 ID:???
>>896
WinXPそのもののFirewall設定はどうなの?

>>897
それは7.x以前もの。
899896:2005/12/20(火) 05:19:49 ID:???
FirewallにPostgreSQLが追加されていなかったので追加しました。
しかし、変わりませんでした・・・残念
900NAME IS NULL:2005/12/20(火) 05:38:56 ID:???
>>899
すまん。java使いじゃないから、pg_hbaで蹴られた場合どういうメッセージを返すかしらんわ。

それと、Firewallを一時的に全てきってみてテストしてみるとか、
psqlコマンドでも接続できないのか試してみては如何か。
901896:2005/12/20(火) 05:54:16 ID:???
Firewall切ってみましたが変わらず・・・
いつの間にかpsqlも繋がらなくなってました・・・いつの間に
902896:2005/12/20(火) 08:49:38 ID:???
さすがにそろそろ寝ることにします
どうもありがとうございました
903NAME IS NULL:2005/12/20(火) 10:36:05 ID:???
psql でホスト無指定で環境変数も無いと localhost につなごうとするんだよ
listen_address を localhost か * 以外にしたら psql の -h 指定でそのアドレスいれなきゃ

pg_hba.conf は初期状態だと localhost だけだから、これも変更が必要
元に戻っているのなら、直接エクスプローラーで該当ファイルさがして
自分のエディタで編集してごらん。
904NAME IS NULL:2005/12/20(火) 22:16:11 ID:sFZphDw3
>894
こんばんは、助けていただいてありがとうございます。

> > 3,1,false,あいわわ,和我
> > 3,2,true,あいいい,阿井胃医
>
> これって逆じゃないの? 家族内は家族内順序だけでソートでいいのか?

1.祖父
2.祖母
3.父(筆頭)
4.母
5.娘

というケースがあるので、家族内順序だけでソートしています。
#筆頭という言い方が変ですね。代表とでもした方がいいかもしれません。

シーケンスやJOINが自由に使えないレベルなので、試行錯誤しながら、
教えていただいたSQLを使ってみました。
家族内の順序はうまく出力されますが、家族グループのソートが筆頭五十音順にならなかったです。
ORDER BYを変えると家族がバラバラになってしまうし何がいけないんでしょう。うーん。

SQL文の意味を十分に理解せずに解決しようとする私がいけないんですね。
もうちょっとがんばってみます。
#そいえば、JOINの後ろに余分なカンマが付いていたみたいです。
905NAME IS NULL:2005/12/20(火) 23:15:03 ID:4flUIlEp
>>904
×筆頭
○世帯主
ってのはどう?
906NAME IS NULL:2005/12/21(水) 10:29:28 ID:zi8/Y14G
plpgsqlでselect into文のテーブル名に変数を使いたいのですがどうすれば出来ますか?

SELECT INTO mid max(id) from tablename;
このtablenameの部分を変数で指定したいです。
このままだとCreate Functionでエラーになります。
ERROR: syntax error at or near "$1" at character 23

もちろんtablenameにはちゃんと値が入っていて、
SELECT INTO mid max(id) from realname where tablename = 'realname';
などとすると期待通りに動きます。
バージョンは8.1.0です。
907NAME IS NULL:2005/12/21(水) 10:47:08 ID:???
>>906
SQL文を文字列で生成して、EXECUTE 使ったらいけると思う
908NAME IS NULL:2005/12/21(水) 11:50:23 ID:???
>>907
テーブル名に変数が使えないということですね。
EXECUTE INTOで同じことが出来ました。
ありがとうございます。
909NAME IS NULL:2005/12/21(水) 16:04:33 ID:8BF8onPp
一度インストールして運用してたDBを別のDBにデータごとコピーしたいんですがどうすればいいでしょうか?
OS入れなおしたせいで、ソフトは入ってない状況になってます
ちなみにOSはwindows2kです

インストール→フォルダをコピー
とかでいけそうな気はするんですけど、誰か情報もってませんか
910NAME IS NULL:2005/12/21(水) 16:28:33 ID:???
インストールする前にdumpしなかったの?
dumpしてあるなら、
http://www.postgresql.jp/document/pg811doc/html/backup.html
これで、できると思うけど。
911NAME IS NULL:2005/12/21(水) 16:33:29 ID:???
dumpしてるときの方法は知ってたのですが
急にOSが落ちて入れなおす羽目になったんです・・・
912NAME IS NULL:2005/12/21(水) 16:35:44 ID:???
>>909
同じバージョンならコピーでOKだった
913909:2005/12/21(水) 16:51:32 ID:???
>>912
thx!!
どのフォルダ以下コピーすればいいですか?
914NAME IS NULL:2005/12/21(水) 17:04:40 ID:???
>>913
data
あと、インストールパスも同じにした
915NAME IS NULL:2005/12/21(水) 23:43:43 ID:???
今日postgresqlをやり始めたものです。
あのバージョン7.xxのlinuxのpostgresqlのデータを
バージョン8.1.0のWindowsのpostgresqlで使用したいのですが,
これってバージョンとかOSの違いとかぜんぜん気にせずに出来るのでしょうか?
エクスポートされているデータをレストアすればいいとか聞いたのですが、そういうやり方
でいいのでしょうか?

916NAME IS NULL:2005/12/22(木) 06:45:08 ID:o1EzN8Bk
postgres初心者です。
CSVファイルを\copyして下記のようなデータを登録しました。
id name
--- -----------------
1 ああああ
2 あいう
3 あかさたな
4 ほげほげ

ここで、select count(*) from xxx where name='ああああ';
とすると2件返ってきます。
これを、select count(*) from xxx where name like '%ああああ%';
とすると1件返ってきます。
多分最初のSQLでは8バイトのnameの件数を表示していると思うのですが、
なぜこうなるのかわかりません。

単純なミスだと思いますが、どなたか教えてください。
917916:2005/12/22(木) 07:00:00 ID:o1EzN8Bk
すんません。
ちなみに共にvarchar型で定義してます。
918NAME IS NULL:2005/12/22(木) 10:29:53 ID:???
>>915
基本的に、バージョンは 0.1 違うだけでそのままでは使えない
ましてや、OS違えばだめだしCPU違ってもダメ。
同じOSでも、32bitと64bitでもダメ。

pg_dumpall > filename
でできたファイルを、
psql template1 < filename
とやれば、全体コピーは可能
オプションは各自調べてちょうだい
919NAME IS NULL:2005/12/22(木) 10:33:43 ID:???
>>916
そのDBのEncoding は何かな?
あと、initdbしたとき、--no-locale つけたかい?
920916:2005/12/22(木) 10:50:50 ID:z5YQIXNM
encodingはEUC_JPです。
>あと、initdbしたとき、--no-locale つけたかい?
してるみたいです。
921NAME IS NULL:2005/12/22(木) 10:52:43 ID:???
>>920
んー、それだとその結果になる理由がわからんなあ
postgresql.conf の lc_messages = は 何になってる?
922NAME IS NULL:2005/12/22(木) 11:33:34 ID:???
>>916
そもそも、count(*) じゃなくて * で表示させるとどれが該当する?
923916:2005/12/22(木) 11:35:12 ID:z5YQIXNM
>921
'ja_JP.UTF-8'
でした。
924NAME IS NULL:2005/12/22(木) 11:54:20 ID:???
>>923
Cじゃないのね・・・
念のため --no-locale で作り直してみては?
925916:2005/12/22(木) 12:24:30 ID:z5YQIXNM
>922
select * from xxx where name='ああああ';
だと"1","ああああ"と"4","ほげほげ"。
select * from xxx where name like '%ああああ%';
だと"1","ああああ"です。

ちょっと調べてもらったのですが、Versionが7.1.3だと問題なく動いて、
7.4.7および7.4.8だとダメでした。
926NAME IS NULL:2005/12/22(木) 14:24:28 ID:???
>>925
だからさ、>>923 が 'C' になってないってことは
>>920
>してるみたいです。

ってのは間違ってる可能性が高い。
なので、もっかいinitdb しなおせ
927NAME IS NULL:2005/12/26(月) 19:05:30 ID:eTqjW5sU
リリース毎の変更点概要が載っているページってないですかね?
7.4.7を使っていて、7.4.10にあげようか迷ってるんですが
928NAME IS NULL:2005/12/26(月) 20:40:30 ID:???
929915:2005/12/27(火) 01:07:20 ID:???
遅くなりましたがレスサンクス。
なんとかできました。

今度はpostgresqlから得られた値の末尾にaがついて表示されるように
なりました。面白いんですがなんか大変。
930NAME IS NULL:2005/12/27(火) 06:07:35 ID:???
a?
Aの反転なら改行コードだろうけどなあ・・・
931915:2005/12/27(火) 09:14:13 ID:???
つかなかったりついていたりするんですが.
末尾にAがちょこんとついています。

PHPやjavaも疑わないといけなさそうかな。
初めてなんでよくわかんないですけど。

>929は>918へのレスです。失礼
932915:2005/12/27(火) 12:05:28 ID:???
ハヤトチリでした。
もともとデータにAってついていました。逝ってきます。
933NAME IS NULL:2006/01/01(日) 08:38:19 ID:FcJooSY7
あるユーザに対して、全てのデータベースへのあらゆる権限を剥奪するにはどうしたらいいですか?
最終的には、そのユーザには一つのデータベースだけを扱えるようにしたいです。
934NAME IS NULL:2006/01/01(日) 22:14:00 ID:???
>>933
コマンドで権限設定したら?
全部剥奪なら、削除したらいいと思うが
935NAME IS NULL:2006/01/02(月) 12:12:42 ID:???

          ,へ                      \     |    /     ,ハ百
         \ \                   \   |  /      ム.只
         /へ/)                    ./ ̄\
    ∧_∧∩  )(            ‐ ‐ ‐−──( ゚ ∀ ゚ )──−‐‐ =夫=_
    .(*・∀・)7   (  !      ______ノ'""ゝ. \_/       フi三iヽ
   ゚ .冂つム゚_」   Y       (_   ____)    ':;  |  \      '─'
  ゜ ム_」」」」ゝ   人    ___) (__∠__   \|    \
   (,_,,ノ `ー´   (  ';   (__________)   ~':;,,.     \
   ,' . / .'     ヽ (_        ,,;::'~            ~':::;;,,,_
  / / '        \ヽ.  __,,,,-‐''"~     ∧_∧   ( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)
   '0      __,,..l⊂Z_).⊃!         ( ´∀` )    ̄ ̄ ̄ ̄) (二二二二二......  0
  0Π0- ‐‐'''""   |;;:.:. ヮ . .:::;|        ,べヽy〃へ  ( ̄ ̄ ̄             0Π0
  HΠH       ∩.∧_∧∩    ∧∧/  :| 'ツ' |  ヽ  ̄λ_λ ̄ ̄ ̄ ̄ ∧∧ ̄ HΠH
 EEE      匸(´∀`;)フ   (,゚Д゚,). o |=宗=! o |  ( `ー´) ヮ    (゚ー゚*) EEE
  |l|lil|ili|        瓜ゞッ=Lく   ,くリ=ッ=[ゝ.__」「「「「L_.」  厂〉=ッ冂づ ヌ Oヮ⊂[]ヨ  |l|lil|ili|
,,.<卅卅ゝ.__.,.,.,___.__.,.,.,(__)ヾZ)'_.,.,_じ(ノルハ)Jつ」」」」」⊂ソ.,_.,_.(入ム]つつ.__,L!__. (_」つ.,<卅卅ゝ,,.,,

〜ラッキーレス〜
2006年新年あけましておめでとうございます!
さて、このレスを見た人は、コピペでも良いので26分以内に3つ以上のスレに貼り付けてください
そうすれば今年中に、体の悪いところは全て治るわ好きな人に告白されるわ出世するわで大変なことです!!
936NAME IS NULL:2006/01/05(木) 12:28:57 ID:0vbt5GF+
スルーしないで教えてください。

Access2000にてODBC接続でPostgleに接続をしようとして、
テーブルを選択してOKを押すと、”引数が無効です”とでて、
接続が出来ません。

ヘルプで調べると、

引数が無効です。(Error 3001)
DLL のルーチンを使用する実行時に、DLL ルーチンに渡す引数に誤りがあります。正しい引数を指定してから、もう一度実行してください。

このエラーは、メソッドの引数の中で互いに排他的な定数を指定しようとした場合にも発生します。たとえば、OpenRecordset メソッドで引数 options に定数 dbConsistent と dbInconsistent の両方を指定した場合、このエラーが発生します。


でるのですが、意味がわかりません。
やさしい人、教えてください。
937NAME IS NULL:2006/01/05(木) 14:15:32 ID:???
ヒント: ぬるぽ
938935:2006/01/05(木) 14:31:29 ID:0vbt5GF+
なんとなく意味がわかったのですが、
設定がODBCのどこをみてもわかりません。
一通り、チェックを入れたりしてみてみたんですが。。。
939NAME IS NULL:2006/01/05(木) 15:44:19 ID:???
>>938
すれ違い気味だけど・・・ODBC設定するところからの
接続テストは成功すんの?
940NAME IS NULL:2006/01/05(木) 16:58:09 ID:???
お約束だが・・・
ODBCドライバのバージョンとPostgreSQLのバージョン
941NAME IS NULL:2006/01/07(土) 07:00:57 ID:???
8.1.2は何が変わったの?
どこ見ればわかるかな?
できれば日本語で。
942NAME IS NULL:2006/01/07(土) 10:58:00 ID:???
8.1.2
* Windows版のDoS耐性を向上
* コミット直後のデータが失われるバグの修正(8.0以降に存在していた)
* 幾つかの マルチバイト文字列に関するバグ修正
* 幾つかの COPY CSV に関するバグ修正
など。
943NAME IS NULL:2006/01/07(土) 14:48:33 ID:???
>>942
二つ目のって発生する確率は高いのかな?
944NAME IS NULL:2006/01/07(土) 15:37:43 ID:???
>>943
報告 http://archives.postgresql.org/pgsql-hackers/2005-12/msg00933.php
見解 http://archives.postgresql.org/pgsql-hackers/2006-01/msg00206.php

自動削除指定のテンポラリテーブルを使っていて発生したようだ。
それ以外の状況で発生するのかよくわからん。リンク先を読んでくれ。
945NAME IS NULL:2006/01/07(土) 15:46:15 ID:???
>>943
942 じゃないけど、ML や Web を見る限り低確率かと。
946NAME IS NULL:2006/01/07(土) 16:03:05 ID:???
>>944
>>945
dクス
947NAME IS NULL:2006/01/07(土) 20:23:04 ID:???
うーん、、、8.1.1で検証中だったが8.1.2に切り替えるか・・
間に合うかなあ
948NAME IS NULL:2006/01/09(月) 18:48:06 ID:vvjz6A3Z
8.1.2確認した。
最近バージョンアップ早いな・・
949sage:2006/01/09(月) 19:06:49 ID:vvjz6A3Z
しまった。下げ忘れた・・スマソ
950sage:2006/01/09(月) 19:14:08 ID:???
しかも下げ間違えた・・・orz

950取ってしまったので次スレ作ろうと思うのだが
タイトルとかそのまんまでいいですか
951NAME IS NULL:2006/01/09(月) 19:26:07 ID:???
>>950
よろ乙
952NAME IS NULL:2006/01/09(月) 19:28:44 ID:???
間違い直す?
PostgresSQLについて語ろう

PostgreSQLについて語ろう
953NAME IS NULL:2006/01/09(月) 19:56:53 ID:???
このさい一個づつ増やしていくって方向で
PostgressSQL
954NAME IS NULL:2006/01/09(月) 20:04:56 ID:???
>>953
さんせい!!
955NAME IS NULL:2006/01/09(月) 20:11:08 ID:???
>>953
賛成
Googleみたいだな
956NAME IS NULL:2006/01/09(月) 20:21:49 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1136805513/

>>953-955
それ実装する前に立ててしまったorzスマソ
957NAME IS NULL
>>956
乙。あれはあれで粋なスレタイだと思うよ。