2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

PostgresSQLについて語ろう

1 :名無しさん@お腹いっぱい。:03/07/01 02:05 ID:y7yXGqKh
とりあえず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

31 :25,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
テーブル内での最大インデクス数? 制限無し



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

数十万件は楽勝だった。
それ以上は組んでないからわからない。

41 :NAME IS NULL:03/11/12 02:29 ID:???
PostgreSQLの不足機能を自作し500万人分のデータを管理(上)
http://itpro.nikkeibp.co.jp/members/SI/JIREI/20030902/1/

42 :NAME IS NULL:04/04/14 18:24 ID:oGs26J7C
もっと語って

43 :42:04/04/15 21:57 ID:5tDhWOhP
(⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン


44 :NAME IS NULL:04/04/15 22:24 ID:GLC7C0dZ
広末涼子は出産のときあまりにも痛くて脱糞しておまけに失禁もしたらしい。
アイドルなのに・・・ウワァァ━━━━━。゚(゚´Д`゚)゚。━━━━━ン!!!!

詳細
http://tmp2.2ch.net/test/read.cgi/mog2/1076074534/l50

45 :NAME IS NULL:05/01/13 12:55:37 ID:???
age

46 :NAME IS NULL:05/01/18 01:02:50 ID:ENnelzsU
もうすぐリリースですか?

47 : ◆CuBRA.266. :05/01/19 17:28:43 ID:nUcKEwnv
(´゚д゚)ノ⌒http://slashdot.jp/article.pl?sid=05/01/19/0641233&topic=113

48 :NAME IS NULL:05/01/20 10:49:17 ID:qx/rPHC7
仕事でハードディスクの必要容量を計算しなければいけなくなりました。

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

良い資料があったら教えてください。

49 :NAME IS NULL:05/01/21 12:18:20 ID:6hWXkFxx
質問スレが行方不明のようなので、ここで質問させていただきます。
今日からORACLEからPostgresに移行作業をはじめたのですが、
ORACLEの質問で
select sum(decode(商品番号,greatest(商品番号,'2999'),数量,数量 * '1000'))
from 売上
where 出荷日>='20050101';
はPostgresではどのような質問になりますか。
実際はもう少し複雑な質問ですが、わからないのは射影の部分だけなので
単純化しました。


50 :NAME IS NULL:05/01/21 14:46:16 ID:???
8からデータ型の変更ができるようになったのが凄く嬉しい。
これでファッキンな仕様変更にも対応しやすくなって
WEB屋は喜んでいるはず。

まだ怖いのでアップグレードはしないが。

51 :NAME IS NULL:05/01/21 23:39:24 ID:MFurI2o3
PostgresにはSQL Serverでいう照合順序みたいなものってのはないの?
たとえば、whereで検索するときに全角と半角を同一視してくれるとか、
カタカナひらがなを同一視してくれるとか。

52 :NAME IS NULL:05/01/22 09:30:14 ID:VCePET9E
8でましたね。
ところで、PostgreSQL+ODBCという環境でWindowsからアクセスしている
人いますか?その時は、やっぱりinterwizのドライバでしょうか?タイムスタンプが
古いんで、最新版とか他の奴が作った何かがあったりするのでしょうか?

53 :NAME IS NULL:05/01/22 12:49:02 ID:???
ttp://cre-ent.skcapi.co.jp/~saito/pgadmin/lib/PGODBC30_08000002.exe

54 :NAME IS NULL:05/01/23 01:48:43 ID:yzt6rpsY
今、自作のWEB RPGつくってるのだが、
データベースをどうしようかと思ってたところに、
運良くPostgresSQLのWindows版がリリース。

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

>>52

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

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



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

56 :NAME IS NULL:05/01/23 22:28:28 ID:???
>>55

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

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

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

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

以上8を使った感じのレポートでした。


57 :NAME IS NULL:05/01/23 22:45:08 ID:???
ぽすぐれっていうとキモイのかよ
5年ぐらいそう呼んでたyo

58 :NAME IS NULL:05/01/24 01:45:41 ID:v1IxMEsA
ヒロコ・グレース

http://www.ewoman.co.jp/profile/50074.html


59 :NAME IS NULL:05/01/24 11:49:49 ID:???
>>56
UIってpgAdminのことか。
もともとLinux使いならpsqlの方がいいぞ。
その他createdb,dropdb,vacuumdb,pg_dumpとか
\binにつまってる。

60 :NAME IS NULL:05/01/24 12:19:41 ID:???
>>59

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

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

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

thx

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

ちなみにSP5のコントロールはインストール済みで、
環境は、WindowsXP Homeです。


62 :NAME IS NULL:05/01/25 10:05:51 ID:???
>>61
つか、Postgres8.0同梱のpgAdminはVだぞ。
単体で入れたのか?
Postgres8.0のインストーラーから入れてみて。
だめならPostgres8.0ごとアンインストールの上
再インストールで。

63 :NAME IS NULL:05/01/25 10:18:36 ID:???
>62
pgAdminについて勘違いしていたようです。
Windows版Postgre専用の管理ツールということでしょうか?

FreeBSDで起動しているPostgreに、
Accessのデータをエクスポートしたかったのですが、
pgAdminは使えませんね?

64 :NAME IS NULL:05/01/26 10:33:24 ID:???
pgAdminでテーブル作って、ODBC経由でACCESS直繋ぎして、データコピー汁。

65 :NAME IS NULL:05/01/26 15:14:19 ID:???
>>63
そう、pgAdminは管理ツール。

Acceessデータを入れるんなら>>64でいいっしょ。
件数大杉でだめならタブ区切りのテキスト作って
psqlで流し込むとか。
ファイルの中身は標準入力からのCOPYコマンド辺りを
調べれ。

66 :NAME IS NULL:05/01/27 10:40:20 ID:???
すいません、質問させてください。
バージョン7.0使ってるんですが、SQLにデータ放り込む時に空欄にして
おきたいところは何で区切ったらよいのでしょうか?

67 :NAME IS NULL:05/01/27 11:17:14 ID:???
>>66
これは・・・どういう意味だろ?
「区切ったら」って>>65の流れで、COPYコマンドの場合?
なら「\N」だ。
参考として、一回pg_dumpで吐き出して中身みてくれ。

68 :NAME IS NULL:05/01/27 12:13:09 ID:???
>67
空欄、というのは「NULL」にしておきたいってことです。
DBに放り込むときに、どの文字列が「NULL」として扱われるのか知りたいです。
お願いします。

69 :NAME IS NULL:05/01/27 12:27:33 ID:???
>68
どうやって放り込むか言わないと答え辛いよ

70 :NAME IS NULL:05/01/27 12:37:53 ID:???
>69
そうですね、すいません。
タブ区切りにしたファイルをあらかじめ作成したテーブルに
\copyで入れる時です。

71 :NAME IS NULL:05/01/27 15:16:59 ID:???
\Nでできない?

72 :NAME IS NULL:05/01/29 17:28:38 ID:xsQIj7ah
select * from pg_tables; で(where 句無し)、
infomation_schemaとpg_catalog に属するテーブル名は表示させたくないんだけど、
そんな設定だれか知らないっすか?(もちろん postgres ユーザ以外で)

REVOKE でいくら設定しても表示されちまうよ…。


73 :Windowsのサービス: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

宜しくお願いします。

74 :NAME IS NULL:05/01/31 11:56:40 ID:???
迷わずPostgreSQL8.0 Win32版を使うべし。
出たばっかで不安だという意見もあるだろうけど、
Cygwin + Postgres自体信頼できないものだからね。

75 :NAME 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は最後の手段にしようかと考えています。



76 :NAME IS NULL:05/01/31 17:59:49 ID:???
linux入れて8使えばいいのに

77 :NAME IS NULL:05/02/01 01:12:09 ID:???
coLinux だな。

78 :NAME IS NULL:05/02/13 23:35:01 ID:/2q5+wOU
他のスレでも聞いたんだけど
postgreに画像を登録する事は可能?
もしできるなら型はどうすればいいの?

79 :NAME IS NULL:05/02/14 02:08:44 ID:???
byteaだったかな

80 :78:05/02/15 00:13:42 ID:???
ありがと〜
試してみま〜す

81 :NAME IS NULL:05/02/17 00:49:23 ID:???
libpqをSSL対応にしてVCでDLL作るにはどうしたらいいの?

82 :NAME IS NULL:05/02/17 01:48:45 ID:???
>>81
1.VCでDLLプロジェクトを新規作成
2.本家からlibpqのソースをとってきてSSL対応に改造
3.VCでビルド

正味1時間もかからないよ。

83 :NAME IS NULL:05/02/17 09:01:07 ID:???
>>82
>2.本家からlibpqのソースをとってきてSSL対応に改造
ここの所、詳しくキボンヌщ(゚д゚щ)カモーン

84 :81:05/02/18 04:56:01 ID:???
今はソースをnmakeとwin32.makを使ってコンパイルしようとしてる。
SSL非対応のものなら簡単にできるんだけど、結局SSLに対応させる方法がよくわからない。

というわけで щ(゚д゚щ)カモーン

85 :NAME IS NULL:05/02/18 20:03:45 ID:???
>>84
ぐぐれば一発で見つかるわけだが。
漏れは試してないけどな。
ttp://ishii.mydns.jp/modules/bwiki/index.php?PostgreSQL#content_1_3

86 :81:05/02/18 20:32:28 ID:???
昨日やったけど、コンパイルでこけるから、変更方法が間違っているのかな、と。

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

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

>>85
説明不足ですみませんでした。

87 :85:05/02/19 19:58:36 ID:???
>>86
>#include <openssl/ssl.h>

8.0.1ならwin32.makとか書換不要。
MSVC6だとplatformsdkのライブラリが必要だった。

88 :NAME IS NULL:05/02/20 23:06:58 ID:8qyMSwWQ
大変低レベルな質問失礼します。
8.0(win32)の常駐解除を行いたいのですが、うまくいきません。

msconfigで常駐解除しようとしたのですが、
「スタートアップ」の欄にPostgreSQLらしいプログラムが見当たりませんでした。
どうかご教授よろしくお願いします。

89 :NAME IS NULL:05/02/20 23:12:52 ID:???
コントロールパネルの管理ツール-サービスより「PostgreSQL Database Server 8.0」を選択し、
スタートアップを「手動」に設定。ついでに[停止]押してサービスを止めとけ。


90 :NAME IS NULL:05/02/21 09:26:12 ID:???
webminとの相性はどうなのだろうか、、、
pg_ctlでの起動が失敗する。。。

91 :88:05/02/21 18:23:02 ID:???
>89さん
できました。
他の分野でも応用が利きそうな、
大変ためになるアドバイスありがとうございました。



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

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



93 :NAME IS NULL:05/02/22 09:54:15 ID:???
>>92
この辺、参考になるかも。
http://www.postgresql.jp/document/pg74doc/html/functions-matching.html#FUNCTIONS-POSIX-TABLE

94 :NAME IS NULL:05/02/22 17:32:28 ID:???
SELECT * FROM tbl WHERE t ~ '(田.*中|中.*田)'
とかできそうだけど、たいして効率はかわらん気がする。

95 :NAME IS NULL:05/02/22 18:07:25 ID:BhZhi8Nj
SELECT * FROM HOGETABLE WHERE HOGECOLUMN SIMILAR TO '%(田|中)%';
でいいんじゃない?
でもだめSQLだな。

96 :NAME IS NULL:05/02/22 18:09:34 ID:BhZhi8Nj
>95
あ、だめじゃん。
自レス。

97 :NAME 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ユーザーのパスワード設定は行っていません。

98 :NAME 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を生成する辺で止まってしまいます。
どなたか解決方法をご存知の方いらしたら教えて下さい。

99 :NAME IS NULL:05/02/22 22:54:20 ID:???
マジでだるい、webminからpostgresql8.0.1を起動させようとすると
起動するときと起動しねーときがある。だるぃ

100 :NAME IS NULL:05/02/23 02:39:27 ID:???
ちょっと質問なんですが、アーカイブログってどんな利点があるんですか。

RAIDにすればいいやん、ってな気がするのですけど。

101 :92:05/02/23 11:12:26 ID:???
>>93
どうもありがとうございました。
やりたいことが書いてありました。

102 :NAME IS NULL:05/02/23 17:29:21 ID:???
>>100
任意の時点に戻れる。

103 :NAME IS NULL:05/02/23 19:54:50 ID:???
>>97 postgres8.0.1使ってるとか?

104 :NAME IS NULL:05/02/23 21:41:54 ID:ePRTzenp
pgAdminでテーブル作ったんですが、DML書くときにいちいちテーブル名を”でくくら
なきゃいけないの?

105 :NAME 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です(全ユーザが)

106 :105:05/02/24 07:37:09 ID:lrjxMj1K
setenv PATH $PATH:/usr/local/lib

setenv PATH ${PATH}:/usr/local/lib
にしたらおこられませんでした。
ほんとにいいのかなこれで(汗

107 :NAME IS NULL:05/02/24 09:48:51 ID:???
PostgresSQL8 をwinXPにいれたのですが、
ODBCの設定をしてACCESSからリンクしたいのですが
どのファイルの設定を変更すればよろしいでしょうか?


108 :NAME IS NULL:05/02/24 12:17:32 ID:???
>>170
postgresq.confとpg_hba.conf

109 :NAME 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ずなのですが。
ただ、一回ポスグレをインストールしてからアンインストールしました

110 :NAME IS NULL:05/02/25 06:00:24 ID:???
corrupted installation

111 :109:05/02/25 20:09:05 ID:???
>>110
どうすれば回復するのでしょうか?

112 :NAME 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

113 :NAME IS NULL:05/02/25 21:25:14 ID:???
7.4.7が出たよ

114 :109:05/02/25 23:00:28 ID:???
すんません、pgsql userをけしてからやりなおしたら、うまくいきました

115 :NAME IS NULL:05/02/26 00:50:17 ID:???
create indexで列を指定する際に降順(desc)指定したいんですけど
マニュアル見てる感じでは出来なさそうで困ってます
なんかいい方法はありませんか?

116 :109:05/02/26 06:50:17 ID:SnGbAP22
すいません
>>114はかんちがいで、やはり、>>109のところでつまづいてしまいました。
どうすればいいのでしょうか?
どなたか教えていただければ幸いです

117 :109:05/02/26 07:17:12 ID:???
すいません、わかえりました。
client のほうをdeinstallしてないのが原因でした
ども

118 :NAME IS NULL:05/02/26 13:05:40 ID:???
>>115

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

浅学な者で、降順にインデックスを作成する局面ってのがよく分からなかったり。
どんな時に使うんでしょうか?


119 :NAME IS NULL:05/02/27 21:03:31 ID:???
>>118
オプション名忘れたけど、Oracleのはこういう場合では。

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

正確には降順ではなく、「123」→「321」、「124」→「421」と値を
変換して、収まるリーフをばらつくようにする。だったような。

120 :NAME IS NULL:05/02/28 06:57:09 ID:???
なるほど。

それなら変換関数をストアドプロシージャとして定義して、それ使った関数インデックスを作成すれば代わりになるかも。


121 :NAME IS NULL:05/02/28 16:02:56 ID:???
調べた。逆キー索引って呼ぶらしいね。
CREATE INDEX index_name ON table_name (columns_name, ...) REVERSE;

ただこれば>>115の求めている内容かどうかは不明。

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

演算子クラスを使えばできそうな気がしなくもないけど難しくてよくわからない…

123 :NAME IS NULL:05/03/02 00:41:49 ID:???
んで、降順指定できなくて期待する実行計画が
得られなかったということか?
どんなふうになったのかexplainの結果晒してみそ。

124 :NAME IS NULL:2005/03/24(木) 10:48:54 ID:zSQgHi4H
こんにちは。質問があります。
datetime型の列に以下のように時分秒まで値が入っています。
2005-03-23 20:56:10.274312

これを日付の部分のみ取得したりするということはできるのですか?
フォーマット関数と言うのを使えばよいのですか?

125 :NAME IS NULL:2005/03/24(木) 12:38:00 ID:???
PostgreSQLにおける、DBユーザとUnixユーザの関係がわからん。
DBユーザを作成するには、まず同名のUnixユーザをつくる必要がある?
UnixユーザでOSにログインできれば、パスワードなしでDBにログインできてしまう?

126 :NAME IS NULL:2005/03/24(木) 13:09:02 ID:QmVcFAro
PostgreSQLに限らず、ほとんどすべてのDBMSで、
DBユーザとUnixユーザは関係ないんだが。
DBさわるの初めてだろ > 125

127 :125:2005/03/24(木) 13:17:18 ID:???
>>126
MySQLとOracleをやってた。
PostgreSQLだと、DBユーザをつくるまえにUnixユーザを作らなきゃいけないみたいで、他とは違うみたいだったから聞いてみた。


128 :NAME IS NULL:2005/03/24(木) 19:23:23 ID:QmVcFAro
>>127
最初のデータベースへのログインのときだけね。
普通はサーバ起動するUnixユーザ名でデータベースにログインすることが多い。


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


要するにデフォルトのDBユーザがいないってこと。
Unixユーザに惑わされる必要はない。


129 :NAME IS NULL:2005/03/24(木) 20:05:43 ID:XO+wWFSm
>>124
日付の部分のみという意味が「日」のみか「年月日」かで方法が違う
extractで「日」だけ取り出せるし
::dateで「年月日」の型にキャストできる

130 :NAME IS NULL:2005/03/24(木) 22:58:40 ID:???
>>124
timestamp型から日付のみの文字列を取り出すならto_charでフォーマットして取り出すと楽。

131 :NAME IS NULL:2005/03/25(金) 02:25:18 ID:???
ちなみにこんな感じな
to_char(タイムスタンプ, 'yyyy/mm/dd') as 日付

ところでおまいら、羽生氏のSQL書き方ドリルが発売されましたよ


132 :NAME IS NULL:2005/03/30(水) 17:47:03 ID:NpfUYvjJ
SQLの質問です。

外部結合したときに表に別名付けるのってどうするんですか?
FROM tblhoge as abc LEFT OUTER JOIN 〜
とすると失敗します。

133 :NAME IS NULL:2005/03/30(水) 18:26:04 ID:???
>>132
むしろ逆

134 :INGRES:2005/03/31(木) 23:16:10 ID:bRhTtWTX
どなたか、PostgresのVIEWをGUIで作成できるツールをご存知ないでしょうか?
VIEWを大量に作成することになったのですが、テーブル構造が複雑で、テキストで書いているのが辛いのですが…


135 :NAME 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の作成ができません。
具体的にどうすればよいのでしょうか??


136 :NAME IS NULL:2005/04/04(月) 04:00:07 ID:???
春だねえ( ´ー`)y-~~


137 :NAME IS NULL:2005/04/04(月) 04:32:41 ID:KM5oPHdv
>>136
感心してねぇで答えろよクズ

138 :NAME IS NULL:2005/04/04(月) 11:19:51 ID:???
ユーザpostgresがいない。
インストールマニュアル読み直してごらん。
どこかでユーザを作っているはずだから。

139 :NAME IS NULL:2005/04/04(月) 15:32:33 ID:???
postmasterが上がっていないに一票。

140 :NAME IS NULL:2005/04/04(月) 15:51:36 ID:DPyic2ET
suse9.1へのpostgresqlのインストール方法が解説してあるページを教えてください

141 :NAME IS NULL:2005/04/05(火) 17:28:43 ID:???
apt-get install postgresql

142 :NAME IS NULL:2005/04/05(火) 20:19:15 ID:???
>>134
OOoの2はどうよ?
ちゃんと使ってないからどこまで使えるか分からんが

143 :NAME IS NULL:2005/04/06(水) 06:17:03 ID:8SoC8hGb
configureで--enable-multibyteを指定しなかった場合、マルチバイト文字を使うとどうなりますか?

144 :NAME IS NULL:2005/04/06(水) 11:16:25 ID:???
  (´・ω・`) < 知らんがな

145 :NAME IS NULL:2005/04/08(金) 00:52:45 ID:???
Apache+PHP+MySQLか
Apache+PHP+ポストグレの組み合わせは、どちらがお勧めですか?

初心者で、これから勉強するつもりです。
Cはわかります。

146 :NAME IS NULL:2005/04/08(金) 12:20:19 ID:???
用途による

147 :NAME IS NULL:2005/04/08(金) 12:50:21 ID:???
確か、MySQLはGPLじゃないライセンスが有料だったっけな。

148 :NAME IS NULL:2005/04/09(土) 15:09:49 ID:???
SQLの一般的な知識ならpostgres
単に自分のサイトとかで使いたいだけならmySQL

149 :NAME IS NULL:2005/04/11(月) 10:01:26 ID:C+Gsfi3e
どこのサーバからでもパスワードさえ合ってたら接続できるようにと
pg_hda.confに以下のように書いたら起動できませんでした。
------------
host all all password
------------
どう書くのが適切なのでしょうか?

#MD5を使えとか、セキュリティがやばいとかは少しはわかってるつもりです
#テスト用なのであらされても困らないので適当設定にしてます

150 :NAME IS NULL:2005/04/11(月) 10:46:47 ID:???
良く調べもせずカキコ

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

host all all 0.0.0.0. 0.0.0.0 password
でどうよ

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


うはっwwwおkwwwうえっwww??


152 :NAME IS NULL:2005/04/11(月) 19:37:32 ID:???
host all user ip mask md5

これが正解

153 :NAME IS NULL:2005/04/11(月) 20:30:57 ID:C+Gsfi3e
>>150,152
レスありがとうございます
試してみます


154 :NAME 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


155 :NAME IS NULL:2005/04/16(土) 17:00:02 ID:???
テーブル定義を表示させるにはどうしたらいいでしょう。MySQLなら desc テーブル名 に相当する機能。
「PostgreSQL テーブル定義 表示」でぐぐっても見つからない。psqlのマニュアルにも該当する機能がない。

156 :154:2005/04/16(土) 17:01:44 ID:???
>.155
\d テーブル名
でできた。逝ってくる。

157 :NAME IS NULL:2005/04/18(月) 14:16:54 ID:7653fSPw
カラムをEmployeeや、Ageなどと定義しても
SELECTして見るとemployee、ageなどと小文字に
なってしまうのですが、これを定義時の通りに
してくれるにはどうすればよいでしょうか。

158 :NAME IS NULL:2005/04/18(月) 15:01:18 ID:???
>>157
二重引用符で囲む。

159 :NAME IS NULL:2005/04/18(月) 15:27:37 ID:???
>二重引用符で囲む。

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

SELECT "Employee" FROM Company;

160 :NAME IS NULL:2005/04/18(月) 15:55:58 ID:???
>>159
テーブルを作る時に囲んどかないといけないのでは、、、

161 :NAME IS NULL:2005/04/18(月) 22:03:33 ID:???
COPYでインポートするファイルに、全角日本語文字を使ってる
フィールドがあると、それ以降のカラムが認識されず
エラーになるようなのですが、これは仕方ないのでしょうか?

162 :NAME IS NULL:2005/04/19(火) 08:38:55 ID:???
>>160
ありがとうございます。

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

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

SELECT "EmployeeID" FROM "Company"

などとしなければいけないようです。暗黙的に
大文字、小文字を区別できるような方法は
ないでしょうか?

163 :NAME IS NULL:2005/04/19(火) 20:31:01 ID:???
ワクワク

164 :NAME IS NULL:2005/04/20(水) 00:37:15 ID:???
ISNULL(select max(id),0)というような記述は
Postgreでも同様に使えるのでしょうか?


165 :NAME IS NULL:2005/04/20(水) 13:13:13 ID:???
>>164
COALESCE をどうぞ
ttp://www.postgresql.jp/document/current/html/functions-conditional.html#AEN12066

166 :NAME IS NULL:2005/04/20(水) 22:40:40 ID:Egg+qrOK
>>165

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

coalsce(select max(seq_no) from table,1)だとエラーになりますよ

167 :NAME IS NULL:2005/04/20(水) 23:12:37 ID:???
できる
使い方を間違っている
Google しろ

168 :NAME IS NULL:2005/04/22(金) 13:36:05 ID:???
マルチポストすません
情報ありませんか?
http://pc8.2ch.net/test/read.cgi/php/985665522/852-

169 :NAME IS NULL:2005/04/22(金) 16:00:12 ID:???
postgresqlをインストールするのに最新の 8.0.2 か、
Linuxディストリビューションに入っている 7.3.8 だと
どちらがオススメですか?

170 :NAME IS NULL:2005/04/22(金) 23:36:12 ID:???
8.0.2。君がチキンなら 7.3.8。

171 :NAME IS NULL:2005/04/23(土) 01:55:31 ID:6Z+WB6dZ
VBからPostgreSQLのODBC設定をしようと思い、SQLConfigDataSourceメソッドを使ってます。
普通に管理ツールからODBCの設定画面を開いて「textを長文字列として扱う」項目があるんですが、
VBで記述するにはなんて書けばいいか知ってる人がいれば教えてください。

172 :NAME IS NULL:2005/04/23(土) 09:47:42 ID:???
>>171
TextAsLongVarchar=1かな?
間違ってたらごめん。

173 :NAME IS NULL:2005/04/23(土) 19:46:53 ID:6Z+WB6dZ
>>173
どうもその名前ではだめみたいなんですよね。
たしかにレジストリではその名前なんですが・・・。
何か間違ってるんでしょうか・・・。

174 :NAME IS NULL:2005/04/24(日) 04:13:32 ID:???
postgresの配列型にインデックスってつけられる?
各要素の組み合わせとかじゃなく、各要素一つ一つに。
つまりある要素を持つレコードを全て検索する、というような時に使われるインデックスを作れるのかどうか。

175 :NAME IS NULL:2005/04/26(火) 18:43:31 ID:FK8gAUqb
PostgreSQLのoidってバックアップ・リストアとかしても
不変ですか?

176 :NAME IS NULL:2005/04/27(水) 00:37:14 ID:???
質問です

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

バックアップとリストアはpg_dumpでできそうなんですが
こいつでリストアしてる際はSELECT文などのリクエストはどうなるのかなぁ
とまる?

177 :NAME IS NULL:2005/04/27(水) 14:51:17 ID:???
>>176
PGSQLの初心者だけど、
pgpoolのレプリケーションモードじゃだめなの?

178 :NAME IS NULL:2005/04/28(木) 03:41:03 ID:???
>>176

試してみればいいじゃん。簡単にできるだろ。

179 :NAME IS NULL:2005/04/28(木) 04:07:04 ID:???
いやだ

180 :NAME IS NULL:2005/04/29(金) 01:04:26 ID:???
そんなこと言わずにお願いしますよ〜

181 :NAME IS NULL:2005/05/02(月) 08:52:21 ID:e8FSHM9H
noviceな質問ですいません
データベースのownerを変えるには、どうすれば良いですか?
postgresが所有者になっているデータベースの所有者を、userXXに変更したいのですが。
おながいします。


182 :NAME IS NULL:2005/05/02(月) 09:32:44 ID:???
>>181
DBそのものは、pg_database を直接変更して
ここのテーブルはALTER を使うんじゃだめかなあ

183 :NAME IS NULL:2005/05/03(火) 23:27:18 ID:ZT796BS9
Fedora Core 3に8.0.2インストールしようとしたらConfgureでエラーでるな。

184 :NAME IS NULL:2005/05/04(水) 05:50:13 ID:???
でる?

185 :NAME IS NULL:2005/05/05(木) 12:40:39 ID:Wd3CnKjG
Fedora Core 3 に 8.0.2 をインストールする時、
ソースコンパイルしていれるのと、rpmで入れるのとだと
どういう違いがでるのですか?

186 :NAME IS NULL:2005/05/09(月) 00:00:31 ID:???
オプションが同じなら同じでしょう
特に8.0.2はreadlineとか無いとconfigureもできんし

187 :NAME IS NULL:2005/05/09(月) 09:31:05 ID:rCL5H70u
おはようございます。質問させてください。
between 'xxxx-xx-xx' and 'xxxx-xx-xx' を使用して、
指定した期間にあるデータを取得しようとしているのですが、
andの前に開始時間、後に終了時間を入れないとダメなんですか?
これは逆にしても可能なようにできたりするんですか?

188 :NAME IS NULL:2005/05/09(月) 09:53:33 ID:???
ダメです

189 :NAME IS NULL:2005/05/09(月) 10:24:16 ID:???
>188
どうもありがとう。

190 :NAME IS NULL:2005/05/09(月) 12:29:10 ID:ue5bdXYS
>>186
ん?
readlineをwithout指定してもだめなの?

191 :NAME IS NULL:2005/05/09(月) 14:01:41 ID:???
>>190
前は無いと勝手にOFFにしてたじゃん

192 :NAME IS NULL:2005/05/10(火) 11:44:47 ID:zhNEZoqY
phpPgAdminを使ってる方がいらっしゃったら
教えていただきたいのですが、
SQL文を羅列したスクリプトファイルを
一括して実行するには
SQLのページの「upload an SQL script」というところから
ファイルを指定して実行するのでしょうか?

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

レンタルサーバを利用しており
phpPgAdminのバージョンは3.4.1です。

193 :NAME IS NULL:2005/05/11(水) 16:28:38 ID:8/Q3W4Vp
win版postgreSQLとjavaでプログラム作ってるんですが、
データベース作るのってどうやったらいいんでしょう?
先に手動でデータベース作ればあとは動かせるんですけど
そこだけわからなくて止まっちゃってますorz

194 :NAME IS NULL:2005/05/11(水) 17:55:05 ID:???
普通にCREATE DATABASEできないの?
権限が無いとか?

195 :NAME IS NULL:2005/05/11(水) 17:59:57 ID:???
JDBC経由でってことでは

196 :NAME IS NULL:2005/05/11(水) 18:21:14 ID:???
psqlの存在を知らないとか。

197 :NAME IS NULL:2005/05/11(水) 18:22:38 ID:8/Q3W4Vp
JDBC経由ではわからなかったので、batファイルとかで
できないものかとやってみたんですが
createdb -U postgres test
とやるとパスワードを求めてこられるので自動化できませんでした。
っていうかこの辺りのコマンドライン操作にも詳しくありません。
ググっても調べられず。ヘタレですみませんorz

198 :NAME IS NULL:2005/05/11(水) 18:28:03 ID:???
>>197
パスワードも指定すれば良いじゃないか

199 :NAME IS NULL:2005/05/11(水) 18:30:09 ID:8/Q3W4Vp
パスワードって-Wですよね?
createdb -U postgres -W password test
ってやると何故か無視してパスワード要求が来るんですが。
何か間違ってるんでしょうか。

200 :NAME IS NULL:2005/05/11(水) 18:32:23 ID:???
-W はパスワード待ちをするためのオプションだね
ちょっとWindowsわからんので調べてみる

201 :200:2005/05/11(水) 18:33:45 ID:???
echo password | createdb -U postgres -W database
とかじゃだめかね

202 :200:2005/05/11(水) 18:37:02 ID:???
つーか、\h すると、CREATE DATABASEって出てくるんだけど
template1 に接続して SQL で作れないか?

203 :NAME 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
色々試してみたいんですが…。
教えていただいたのにすみません。
マジ申し訳ないです。自分の能力の無さを痛感しました。

204 :NAME IS NULL:2005/05/11(水) 18:50:55 ID:???
>>194の言っている意味がやっとわかった orz

205 :NAME IS NULL:2005/05/12(木) 09:04:05 ID:gJvVR1Vo
>>204
どういう意味ですかorz
アホですみません

206 :NAME 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

207 :NAME IS NULL:2005/05/12(木) 20:30:17 ID:???
>>206
第一引数にサブクエリで渡す
connectby('(SELECT * FROM Table WHERE key0=100)',.....

208 :NAME IS NULL:2005/05/12(木) 20:38:53 ID:4laAhzfd
>>207
それは、さすがに釣りでしょw

209 :207:2005/05/12(木) 22:00:45 ID:???
>>208
やってみれっ!

サブクエリの後ろにAS fooが必要のようだが...

210 :NAME IS NULL:2005/05/13(金) 02:18:21 ID:2b3w8b8g
serial 型のカラムを後から追加する方法にはどうしたらいいでしょうか?

211 :NAME IS NULL:2005/05/13(金) 02:50:53 ID:???
>>210
ALTER TABLE Table ADD COLUMN newfield SERIAL;


212 :NAME IS NULL:2005/05/13(金) 03:03:54 ID:???
>>211
やってみたら、エラーが出て追加できませんでした
>adding columns with defaults is not implemented
とのこと

213 :NAME 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型なだけ。

214 :NAME IS NULL:2005/05/13(金) 09:06:54 ID:???
>>213
レスありがとー。
やってみます!

215 :206:2005/05/13(金) 11:19:40 ID:UXPcRK1/
>>209
ありがとうございます。
本当にできるとは。
きのう一日ずっと悩んでいたんで、できた瞬間、笑ってしまいました。
助かりました。ありがとうございました。

216 :NAME IS NULL:2005/05/13(金) 18:49:45 ID:k0144XQ7
基本的な質問でもいいでしょうか。
PostgresSQLでint4型のカラムがあります。ここにNULL値を入れることは可能でしょうか。


217 :NAME IS NULL:2005/05/13(金) 19:11:28 ID:???
NOT NULL の設定が無ければ可能

218 :NAME IS NULL:2005/05/13(金) 20:23:10 ID:???
ここで聞くより自分で試したほうが早くね?

219 :NAME IS NULL:2005/05/13(金) 22:41:27 ID:???
それは言わないのが華。
DBに限らずプログラミングもそうだけど、
理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。
ある意味少なくとも日本人エンジニアはその辺、資源を使うという事に臆病だよ。

220 :NAME IS NULL:2005/05/14(土) 21:20:56 ID:???
>理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。

それって実環境で試してみる以外に確認しようがないよなぁ

221 :NAME 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 のパスワードを聞かれます。全くパスワードが思い
出せません。すみませんがアドバイスをお願いします。



222 :NAME IS NULL:2005/05/16(月) 14:05:09 ID:???
他に管理者権限のユーザー作ってないの?

223 :221 :2005/05/16(月) 14:07:35 ID:j344hoIJ
作ってませんでした。というか postgres にパスワード設定
したこと事態覚えてません・・・。

224 :NAME IS NULL:2005/05/16(月) 14:08:40 ID:???
つーか、いったん pg_hba.conf 書き換えて trust にして
修正ってできなかったっけ

225 :221:2005/05/16(月) 14:12:44 ID:j344hoIJ
今 trust になってますが、それでも何するにもパスワードを聞かれます。
具体的な修正方法をご伝授願いますか?

226 :NAME IS NULL:2005/05/16(月) 14:16:01 ID:???
なんか必死だから、
ちょっと、じらしプレーをしたくなってきた。


227 :221:2005/05/16(月) 14:19:11 ID:j344hoIJ
じらされるのはあまり得意ではありません。
プリーズ。

228 :NAME IS NULL:2005/05/16(月) 14:23:31 ID:???
ほんとにtrustなの? pg_ctl reload とか再起動してみた?

229 :221:2005/05/16(月) 14:30:52 ID:j344hoIJ
本当にtrustです。が、pg_ctl reload で postmaster.pid がない
と言われました。正常に動いてない? なので現在再インストール中。
その後再起動してみます。アドバイスありがとうございます。

230 :NAME IS NULL:2005/05/16(月) 14:34:06 ID:???
再インストールって、、、データ空でユーザーもいなかったのか・・・

231 :221:2005/05/16(月) 14:37:01 ID:j344hoIJ
いないです。でも今日中にユーザ登録管理システム作らなくちゃいけなくて
そんな時にこのパスワード問題なんで悲しいです。前に進めん。

232 :NAME IS NULL:2005/05/16(月) 14:38:09 ID:???
>>231
なんか君はだめ人間に匂いがするよ。
まあ、がんばって。

233 :NAME IS NULL:2005/05/16(月) 14:39:02 ID:???
linuxとかで、2箇所にインストールされてたりしないか

234 :221:2005/05/16(月) 14:45:39 ID:j344hoIJ
ダメ人間って、失礼ですね。別にいいですけど。
/usr/local/pgsql にしかインストールされてません。おかしい。

235 :NAME IS NULL:2005/05/16(月) 14:49:55 ID:???
/var/lib/pgsql なんてあったりしない?
まあ起動時してconf書き換えて終了したりすると
失敗することはあるからな。kill でちゃんと全部殺してから
起動してみて。

236 :221:2005/05/16(月) 15:00:16 ID:j344hoIJ
あ〜−−−、よく解りませんが再起動が効きました。
プロセスが残ってたんですね。嬉しいです。お時間
ありがとうございました。感謝いたします。


237 :NAME IS NULL:2005/05/17(火) 13:29:51 ID:sky/VvmD
PostgreSQLのユーティリティを探しています。
Oracle用のosqlgridのように、データの編集が行えるものが
ほしいのですが、何かありませんでしょうか?

238 :NAME IS NULL:2005/05/17(火) 13:57:46 ID:???
>>237
osqlgrid はわかりませんが、
PgAdminIII ではどうですか。
公式サイトからたどれます。

239 :237:2005/05/17(火) 15:52:47 ID:???
>>238
色々触ってみました。どうもありがとうございます。
機能的に申し分ないです。使わせていただこうと思います。

データビューからデータを追加する時って一行ずつ
しか追加できないんでしょうか?
>>237が説明不足で申し訳ないです。
例えばエクセルのセルをコピーするように
ぐわっとデータを作って、更新。
みたいなことがしたいんです。


240 :NAME IS NULL:2005/05/17(火) 16:18:31 ID:???
>239
AccessとODBCでPostgreSQLに繋いでExcelファイルインポート汁。

241 :NAME IS NULL:2005/05/17(火) 16:29:27 ID:???
excelだと、cvs出力→INSERT文生成→ツールから実行
というのは面倒か

cvsに出た時点でpsqlでCOPYかスクリプト使う、というのは、
やったことあるけど

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


「つみきソフト」で検索。

243 :237:2005/05/17(火) 17:23:46 ID:???
Common SQL Environmentでやりたい事が出来ました。
みなさん、どうもありがとうございました。


244 :NAME IS NULL:2005/05/18(水) 00:36:17 ID:???
CVS?CSV?

245 :NAME 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にアップグレードしても、一緒でした。


246 :NAME IS NULL:2005/05/18(水) 09:45:26 ID:???
>>245
initdb の時、--no-locale つけましたか?

247 :NAME IS NULL:2005/05/18(水) 10:02:12 ID:9taiR1il
>>244
ぐぐれ。
一方は、表をカンマ形式で保存するフォーマットの名前
もう一方は、ソース管理システムの名前

248 :NAME IS NULL:2005/05/18(水) 10:08:53 ID:???
すまん、csvのつもりでcvsと書いてしまう

249 :FROMA:2005/05/19(木) 18:08:12 ID:64ygOH2e
postgreSQLのテーブルで
行番号ではなく値を指定してその値のあるレコードを配列として取得する方法はありますか?

250 :NAME IS NULL:2005/05/19(木) 21:19:19 ID:???
いままではorder by とlimit,offset を組み合わせて使ってたの?

251 :NAME IS NULL:2005/05/20(金) 00:55:39 ID:???
>>246

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




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

253 :NAME IS NULL:2005/05/20(金) 02:15:46 ID:???
show lc_messages; とやってみたところ、japanease_japanと、表示されました。

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



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

255 :NAME 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入れてない場合が多いです

256 :NAME IS NULL:2005/05/20(金) 07:54:54 ID:???
>>255
その4つだけだとソートとか検索とか関係なさそう。
少なくとも7.4.x以前は--no-localeを忘れるとinitdbやり直さなければならなかった。


257 :NAME 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にしてもテーブルサイズの節約にはならないんですか?

258 :NAME IS NULL:2005/05/20(金) 23:20:53 ID:???
その辺はソース見て調べるとして、、、
Cでfloat扱うときに実際はdouble使ってんのと同じなんでしょうかね

259 :NAME IS NULL:2005/05/21(土) 00:06:35 ID:???
>>258 大胆な発言だな。


260 :NAME 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ができるか、ってことなのかな…


261 :NAME IS NULL:2005/05/23(月) 08:06:31 ID:???
>>260
おっと、上記であげたselect文のorder by にはdescがもちろんつきます。

262 :260:2005/05/23(月) 08:57:14 ID:???
自己解決したっぽい

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

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

なんか罠があったら教えてほしい


263 :NAME IS NULL:2005/05/23(月) 22:02:16 ID:ZiM9Oh4Z
cseでWindows版にアクセスできないよ。
Cygwin使いたくないのに。

264 :NAME IS NULL:2005/05/24(火) 07:22:37 ID:???
dllかえるとか

265 :NAME IS NULL:2005/05/24(火) 09:29:34 ID:???
Winに限らず、cseから接続できないな
データベース "dbname" が無いと言われる。
ためしに、createdb "\"dbname\"" で作ったらそこにつながった・・・

dll変えてみるか

266 :NAME IS NULL:2005/05/24(火) 10:15:47 ID:???
>>265
CSEのサイトからたどれるDLLでないと正常につながらない。

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

まあ SET SEARCH_PATH TO を実行すれば何とかなるか

268 :NAME IS NULL:2005/05/27(金) 04:01:04 ID:dGXjOC08
テーブルのテキストエンコーディングを変更したいんだけど
ダンプ>変換>書き戻し ってやっていいのかな?
もっとスマートな方法あるんだろうか?

269 :NAME IS NULL:2005/05/27(金) 09:37:47 ID:???
中のデータに影響するし、取り出して書き戻しは避けられないのでは

270 :NAME IS NULL:2005/05/28(土) 01:17:59 ID:YmyCnwZP
>>269
やっぱそうっすか...
一生お目にかからないような漢字が大量にはいってるので
誤変換混じるかもとか思うとちょっと憂鬱...

271 :NAME IS NULL:2005/06/09(木) 11:00:06 ID:???
ベタ変換した後に該当の文字コードだけフロントエンドか何かで変換してやってください

272 :NAME IS NULL:2005/06/09(木) 21:47:52 ID:76l8WePU
RedHatLinux8、Postgre8で環境作ってます。
WinマシンからAccessでリンクテーブルを張ろうとすると、テーブル選択画面
が表示されるタイミングでサーバーのターミナル画面にエラーが表示されます。
(msysconfテーブルがありません、みたいな内容です。あるわけねぇだろ)
これって普通のことでしょうか?リンクテーブルはちゃんと作成できます。

あと、PGADMINでサーバーを追加しようとすると「PostgreはVer7.3以上でない
とダメ!」と表示されます。ちゃんとVer8なのに。是非とも対処法をご教授
ください。宜しくお願いします。


273 :NAME IS NULL:2005/06/13(月) 12:19:53 ID:???
>>272

>RedHatLinux8
なんでまた。見たところ開発・テスト環境なんだろ?
ES・ASなり、オープンソースの互換ディストリビューションで
動かしたら?
Red8じゃ試してみようって気にもならないよ。

274 :NAME IS NULL:2005/06/13(月) 15:43:08 ID:???
>>272
ここでmsysconfやaccessを探せば解決するかも
http://ml.postgresql.jp/pipermail/pgsql-jp/

275 :NAME IS NULL:2005/06/13(月) 16:08:15 ID:???
>>273
そうかもしれんが、OSに依存した問題では無いのでは?

276 :NAME 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入れてないから勘弁な。

277 :NAME IS NULL:2005/06/15(水) 00:18:49 ID:???
それ答えになってるのかな・・・

278 :NAME IS NULL:2005/06/15(水) 09:04:35 ID:???
じゃあ、お前が調べろよwww俺は面倒しぃ(・ω・)

279 :NAME IS NULL:2005/06/15(水) 09:57:57 ID:???
>>276
キミはイイヤツ

280 :NAME IS NULL:2005/06/15(水) 17:28:00 ID:JbFI81w8
SQLServerだと@、MySqlだと?で指定するようなパラメータクエリって
postgreではどうかけばいいんですか?

281 :NAME 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の近くでパーサーがなんとかって。
ネットで見つけた文法なんですが。型の変更さえ出来ないなんて・・・。



282 :NAME IS NULL:2005/06/16(木) 09:24:47 ID:???
>>281
ネットでみつけるまえに、\h ALTER ・・・
で調べたほうが早い。
で、そのpsql 古くないか?
最初から古いPostgreSQLがインストールされてんじゃないの?

283 :NAME IS NULL:2005/06/16(木) 19:16:59 ID:/f9b3kKU
質問なんだけどPostgresってoracle見たいにヒントって与えられないよね?
使うインデックスを指定したいんだけど方法ある?

284 :NAME IS NULL:2005/06/17(金) 02:56:40 ID:uu7yAD+1
cygwinで使おうと思ったら
shared memory segmentがなんちゃらかんちゃらって
エラーが出るんだけど・・・
etc/systemを書き換えればいいって検索したらあったけど
そもそもそんなファイルもフォルダーもないよ
一体どーしたらいいの?

285 :NAME IS NULL:2005/06/17(金) 09:55:18 ID:???
なきゃ作れ
つか、/etc/cygserver.conf じゃなくて?

286 :NAME IS NULL:2005/06/17(金) 15:00:50 ID:???
SQLインジェクション対策のため、
;で繋げた複数のSQLを禁止したいのですが、
それってPostgreSQL側の設定じゃ無理?

287 :NAME IS NULL:2005/06/17(金) 15:51:57 ID:???
そのSQLはどっから投げるのさ

288 :NAME IS NULL:2005/06/17(金) 16:21:13 ID:???
>>286
http://www.softek.co.jp/Sec/mod_security1.html

289 :NAME IS NULL:2005/06/17(金) 16:47:31 ID:???
>>287
PHPやPerlから実行します
もちろんアプリケーションレベルでセキュアなのが望ましいのですが、
人間が作るので100%はないでしょう

>>288
ありがとう、検討してみます。
でもうまく設定しないと、正常通信にも影響を与えそうですね。

290 :NAME IS NULL:2005/06/18(土) 15:20:36 ID:???
シータは変わった。
パズーがそう感じ始めたのはいつ頃からだったろう。
シータと暮らし始めて1年、確かに今でも彼女は聡明で優しく誰よりも可愛い女の子だ。
しかし、初めて彼女と出会い海賊達と冒険を繰り広げたあの時とは明らかに何かが
変わってしまった。
こんなことがあった。
いつものようにシータが夕食の準備のために、台所で忙しげに立ち働いていた時のことだ。
何か手伝いでもしようかとパズーはゆっくりと台所へ歩み入り、シータの背中に声をかけ
ようとした。
とその時、シータの尻のあたりから「ブーッ、プス〜ッ」と大きな音がした。
パズーは突然のことに驚きその場に立ちすくんでしまったが、シータはそんなパズーに気付く
こともなく、また放屁を恥じるような様子もなく調理を続けていた。
シータだって人間だ。放屁もするだろうし、一人でいる時にいちいち周りに気を遣うような
仕草をすることもないだろう。それが当たり前だ。
しかし、それなら1年前の彼女はどうであったろう?
ドーラ一家の船で一緒に過ごした頃のシータは、決して放屁などしなかったのではなかったか?
放屁を全くしない人間なんて存在しないことをわかっているはずなのに、パズーにはなぜか
あの頃のシータが一人きりでいる時でさえ1度も放屁をしたことがないと確信できたのだ。

291 :NAME IS NULL:2005/06/18(土) 17:25:01 ID:EMBLVldB
わたしだけ…(だいたひかる風?)
psql 8.0.3 for windowsに\hなどと入れると
'more' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
といってコマンドプロンプトでmoreされるのは。

292 :NAME 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・無料・超大物国会議員登場・皆さん大挙してご参加を!■□■

293 :NAME IS NULL:2005/06/20(月) 10:28:21 ID:FNdJiACZ
LinuxにPostgreSQLをインスコかまそうとしているのですが、
公式のDLサイトがみな氏んでいるようなのですが・・・。
誰か接続できる方おいでじゃないですか。

294 :NAME IS NULL:2005/06/20(月) 12:37:54 ID:???
>>293
逆引きできてないだけだろ、
ネタでやってるなら耳から脳みそ吸い出すぞ

295 :NAME IS NULL:2005/06/20(月) 12:42:26 ID:???
            /\
      /\  /__\ 
    /__\ |´ < ` |    呼んだ?
     | ´ ゝ` | 彡πヾ⌒i 
    /彡πヾ\    | |
    /    / ̄ ̄ ̄ ̄/ |
  __(__ニつ/ mind  / .| .|____
      \/  flayer / (u ⊃

296 :NAME IS NULL:2005/06/21(火) 16:38:08 ID:???
現在DB接続時にhost=localhost user=postgresで接続しているのですが
この記述を変更せずにlocalhostのpostgresへの接続をhost=db1にフォワード
したいのですが可能でしょうか?

297 :NAME IS NULL:2005/06/21(火) 18:32:28 ID:???
localhost上に、stone や usogres や pgpool を置くというのはダメ?
winだとstoneしか選択肢ないけど

298 :NAME 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(スレーブ)が復旧した場合、動的に解除されないのでしょうか?

299 :NAME IS NULL:2005/06/21(火) 19:06:47 ID:???
>>297
どれか使えそうです。ありがとうございます。

300 :NAME IS NULL:2005/06/22(水) 04:23:26 ID:hqpCe2Fo
せっかく一部上場に勤めてるのに内職バレてクビだなんて馬鹿だね。

301 :NAME IS NULL:2005/06/22(水) 12:14:08 ID:???
>>296
delegateとか

302 :NAME 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度切断して再度接続すると正常に使えます。

サーバからタイムアウトによって切断されてるんだと思うのですが
一定時間操作がない場合の強制切断ってサーバ側の
設定値でありましたでしょうか?
よろしくお願いします。


303 :NAME IS NULL:2005/06/25(土) 03:42:47 ID:lAVQPOOq
PostgreSQLユーザの方はMySQLと比べて
PostgreSQLを選んだ理由はなんでしょうか?
MySQLの方が性能が良いと聞きますし、
機能的には最近はあまり差がないように思います。
PHPの書籍だとたいていMySQLがセットで説明されるように
なってるのを見てちょっと疑問に思ったのです。

304 :NAME IS NULL:2005/06/25(土) 04:08:19 ID:???
>>303
> 機能的には最近はあまり差がないように思います。

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

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

いc氏に聞けば、「ライセンス問題」って言うだろうな。

305 :NAME IS NULL:2005/06/25(土) 11:49:38 ID:???
昔は日本語対応その他の問題でPostgresの方が良かった。
そのままずっと使ってる。


306 :NAME IS NULL:2005/06/25(土) 19:18:57 ID:nB8glhnj
insertした項目のserial型の値が取得したいんだけど
どうやればいいかな?
@@identityみたいなのがあればいいんだけど

307 :NAME IS NULL:2005/06/25(土) 19:38:02 ID:???
>>306

insertしたときに返ってくるoidを条件に使ってselectする。

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

ちなみにodbc接続なんだけど問題ある?

309 :306:2005/06/25(土) 19:43:45 ID:nB8glhnj
あ、oidはわかったけど
insert時に取得する方法がわからないよ・・・

310 :NAME IS NULL:2005/06/26(日) 00:14:33 ID:???
Pg.pmをインストールするための環境変数をセットする場所が
どうしてもわかりません。

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

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

ご教示いただけますと幸いです。
宜しくお願いいたします。

311 :NAME IS NULL:2005/06/26(日) 00:26:03 ID:???
>>306
SELECT currval('sequence_name');

312 :NAME IS NULL:2005/06/26(日) 02:06:39 ID:???
insert時の自動付与のsequenceをcurrvalでチェックだと、insert処理の
集中時に違う番号呼び出す可能性が高いよ。
sequenceはトランザクション関係なしでnextvalで1つ数が上がるから、
自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。

313 :NAME IS NULL:2005/06/26(日) 02:32:17 ID:???
>>303
MySQLのGPL+独自ライセンスは扱いにくい
商用ライセンス購入以外だと基本的にビジネスには向かない

314 :NAME IS NULL:2005/06/26(日) 02:36:08 ID:???
>>312
> 自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。

同一セッションなら最後のnextvalで取得した番号が出る。
裏(=別セッション)には影響を受けない。
影響を受けるのはlast_value

315 :NAME IS NULL:2005/06/26(日) 02:42:51 ID:???
ちょっと修正。
> 同一セッションなら最後のnextvalで取得した番号が出る。
同一セッションの最後のnextvalで取得した番号が返る。

316 :303:2005/06/26(日) 04:33:53 ID:UgDLxZtU
>>304>>305>>313

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

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

PostgreSQLでぜんぜん十分使えるから問題ない、むしろMySQLのほうが
ライセンス絡みで扱いにくいってことなんですね。


317 :NAME IS NULL:2005/06/26(日) 04:39:33 ID:???
>>316
まあ、このスレだから、ってことも考慮した方がいいと思うよ。
実際に業務でだってバシバシ使っているところはたくさんあるんだし。

俺は、なんとなくPostgreSQLが好きだからって理由だけだなあ。


318 :NAME 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のほうが日本語周りはあたまええな

319 :306:2005/06/27(月) 12:24:52 ID:IP5+4BWP
>>311
ありがとう、コピペしてみたんだけど動かなかったよ
sequence_nameには別の文字が入るのだろうけど、少しググってもわからなかった
itemテーブルのid列がserial型だった場合どういう値を書けばいいのか教えてください

320 :NAME IS NULL:2005/06/27(月) 12:42:59 ID:???
\ds

321 :NAME IS NULL:2005/06/27(月) 15:35:53 ID:???
データが入ってないブランクテーブルのフィールド名を得る方法があれば教えてくさい。

322 :NAME IS NULL:2005/06/27(月) 15:38:41 ID:???
>>321
いや、、、何を使ってだい
やり方はいくらでもあるが、条件絞ってくれないと

323 :NAME IS NULL:2005/06/27(月) 18:44:26 ID:???
手元にpgのdumpファイルがたくさんある。日単位で2年分ぐらいだ。
で、それら全部から特定のテーブル分のデータだけ削除したい。

おしえてままん、、、

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

バイナリなら知らね。
restoreしてdropして再dumpするスクリプト書くとか。


325 :NAME IS NULL:2005/06/27(月) 20:13:36 ID:???
>>302
うちも同じ状況
切断される時間を計ったけど
いまいちはっきりしない

回線品質が悪くてそうなるんだと思う
ADSLとかじゃない?


326 :NAME 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)

って、おい...

327 :NAME IS NULL:2005/06/28(火) 07:33:57 ID:???
>>325
NATタイマーじゃないの?

328 :325:2005/06/28(火) 09:28:59 ID:???
>>327
NATタイマ?
ローカルのルータの設定?
見てみまーす

329 :NAME IS NULL:2005/06/28(火) 12:21:45 ID:???
PuTTYのSSH経由で接続して
一定時間ごとにダミーパケットを投げるオプションをつけるとか

330 :325:2005/06/28(火) 14:39:24 ID:???
>>327
ルータの設定を見たところ300秒になってました
実験したところちょうど5分前後で切断されてるようで
設定を変更したところ切断されなくなりました。
ありがとうございました

>>329
そんなことができるんですか
確かにSSH(TeraTerm利用)は以前も切断されませんでした
調べてみますー

331 :NAME 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文字
の名前も選択されてしまいます。頭がおかしくなりそうです、助けてください。



332 :NAME IS NULL:2005/07/09(土) 13:44:02 ID:???
>>331
FAQなんだけどな。
つ ttp://www.google.co.jp/search?complete=1&hl=ja&q=postgresql+%E6%97%A5%E6%9C%AC%E8%AA%9E+%E3%82%BD%E3%83%BC%E3%83%88&lr=lang_ja

333 :NAME IS NULL:2005/07/09(土) 13:47:57 ID:IOHw8tbN
>>332
サンキュウサンキュウ読んでみます。どうもありがとう!

334 :NAME IS NULL:2005/07/09(土) 17:07:14 ID:ZAESD3uG
質問があります・・・

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

で、現在の日時と比べて何ヶ月たっているかを
postgresのみで対応したいのですが、
どうすればよいでしょうか?
結果としては、いまだと1が帰ってきて欲しいのです。

335 :NAME IS NULL:2005/07/09(土) 19:50:57 ID:???
>>334
SELECT extract('mons' from age('2005-06-01'::date));

336 :NAME IS NULL:2005/07/11(月) 11:43:04 ID:D4fxVleQ
335様
ありがとうございました。

337 :NAME 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

初心者なので優しくお願いします。

338 :NAME IS NULL:2005/07/11(月) 21:47:16 ID:???
>>337
出来ないくはないが、簡潔な安定した解が出てこない。
それぞれ別に取って、ホスト言語で処理した方がよさそうかな。

339 :NAME IS NULL:2005/07/11(月) 21:54:29 ID:???
>>337
そんな処理をしないといけないような作りが
根本的に間違ってないかな?

行数じゃなくて
A 、B と C、D との関連が何かあるんだろ?
その関連を使ってJOINするのが普通であり
そうでない作りは作り方が間違ってます

340 :337: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

この報告の空欄部分をうまく埋められないんです。ぐすん。
ホスト言語で処理したらソーティングが難しくなりますよね。
なんかいい方法を教えてください。

341 :NAME IS NULL:2005/07/11(月) 22:57:28 ID:EZKsIbwG
windows でpostgres8をインスコしようとしたら
initdbでエラーが発生します。
なぜでしょう?

342 :NAME 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報告" = '申請');



343 :337:2005/07/11(月) 23:36:27 ID:TWcPxtp0
皆さんありがとうございます。
明日がんばってみます。

344 :337: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級ぐらいになった気がします。
それでは

345 :NAME IS NULL:2005/07/16(土) 00:24:36 ID:MJ7AHnoJ
.Net Data Provider Npgsql って品質はどんなものでしょう?

346 :NAME IS NULL:2005/07/16(土) 14:01:16 ID:???
データベースのテーブルからER図作成してくれるソフトって何かないかな?
DBDesignerはPostgreSQLに対応してないんだよね

347 :NAME IS NULL:2005/07/16(土) 14:22:02 ID:???
ODBCでなんとかなるよ

348 :NAME IS NULL:2005/07/16(土) 14:50:53 ID:???
>>346
すげー!こんなソフトがあったのか。
http://forza.cocolog-nifty.com/blog/2004/10/er_dbdesigner.html

来週ODBCで繋いで動かしてミル

349 :NAME IS NULL:2005/07/16(土) 16:05:10 ID:???
>>347
ODBCでやってみたんだけどリレーションうまく取得できなかったんだよね
設定の問題??

350 :NAME IS NULL:2005/07/17(日) 07:05:49 ID:05OPVd2h
既出なのか?
タイトル
PostgresSQLってなってるけど・・・あれでいいのか?

351 :NAME IS NULL:2005/07/17(日) 12:20:54 ID:P0/lgAy0
>>8にて指摘済

まぁPostgersのSQLのスレくらいに思っていると気にならん。

352 :NAME 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値が自動的に入る方法ってないの?
誰か教えてちょ。

353 :NAME IS NULL:2005/07/21(木) 13:58:44 ID:???
PostgreSQLでは''はnullじゃないと思われるがどうか

354 :NAME 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');

355 :NAME IS NULL:2005/07/21(木) 14:45:56 ID:???
こんな調子だと SELECT するときにも where 番号 = NULL でひっかからない
とかになりそうな悪寒

当然 IS NULL で評価

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

357 :NAME IS NULL:2005/07/21(木) 15:02:00 ID:xc+8JesH
>>353
礼いうの忘れてた。
''ってNULLじゃないって今回はじめてわかった。サンク

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

気をつけます。

358 :NAME IS NULL:2005/07/21(木) 15:03:27 ID:xc+8JesH
もういっちょ

>>357内の>>356じゃ無くて >>355ね。

359 :NAME IS NULL:2005/07/21(木) 20:41:47 ID:???
ESM for PostgreSQLが本家にマージされないかなあ。
PowerGresに金払うのが惜しいわけじゃないけど対応プラットフォームが
WindowsとLinuxだけなのは寂しい。

360 :NAME IS NULL:2005/07/21(木) 21:42:26 ID:???
現役で金ズルでしょうからマージされるわけない
スタレたらマージされるかもしれんけど

361 :NAME IS NULL:2005/07/22(金) 12:02:13 ID:???
いろいろ検討してるんだけど、Solaris に対応して無いものが
結構多いんだよな。

362 :NAME 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


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

pg_ident.confにマップが定義してあったら、
psql -lとかやったときに勝手にpostgresユーザーになると思い込んでたけど、
-U postgresと指定する必要があっただけでした。
すいません。


364 :NAME 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風に書き直すとどうなるのでしょうか?

365 :NAME IS NULL:2005/07/25(月) 20:29:09 ID:???
>>364
UPDATE TableA SET Name = TableB.Name FROM TableB WHERE TableA.id = TableB.id

かな。


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

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

今までMS製のしかほとんど触ったことなかったからちょっと気になる

367 :NAME IS NULL:2005/07/27(水) 18:25:49 ID:???
test

368 :NAME IS NULL:2005/07/27(水) 18:32:39 ID:???
ヒント:SQL92

369 :NAME IS NULL:2005/07/27(水) 18:38:22 ID:???
ちょっと教えてください。

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

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

どなたかよろしくお願いします。

370 :NAME IS NULL:2005/07/28(木) 14:58:20 ID:???
テキストファイルだし、スクリプトか何かで加工してはどうか

371 :NAME IS NULL:2005/07/28(木) 20:57:59 ID:???
>>359

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

ハマれば速いかも知れないけど、使い方が難しそうな悪寒

372 :NAME IS NULL:2005/07/29(金) 11:21:29 ID:???
>>370
> テキストファイルだし、スクリプトか何かで加工してはどうか
サンクス 試してみます。

373 :NAME 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?

なんて表示されちまいます。
設定ミスってますかね?


374 :NAME IS NULL:2005/08/02(火) 21:43:09 ID:???
>>373
postgresql.confのlisten_addressesかな。
しかし、これで引っかかっている場合
そゆエラーメッセージじゃなかったような気もする。
ちゃんと穴が空いているか確認も必要かも。


375 :NAME IS NULL:2005/08/02(火) 21:54:47 ID:???
>>373
メニューからセキュリティレベルを開いて、
その他のポートとしてTCPの5432を追加

376 :NAME IS NULL:2005/08/02(火) 23:08:59 ID:7fcOfF8A
メールを使うだけでお金が貯まる!
http://osaifu.com/?mitan69

377 :373:2005/08/03(水) 00:17:16 ID:???
>>374
d。確認してみます。

>>375
d。メニューって、どのツールのメニューになりますか?

378 :377:2005/08/03(水) 09:34:15 ID:???
原因判明しますた。
インストールしたままの状態だったpostgtes.confを確認したら、
listen_addressesとportがコメントアウトされてた。。。orz
吊ってきます


379 :NAME IS NULL:2005/08/03(水) 23:35:43 ID:???
portはデフォルトの5432のままでいいからコメントアウトされててもいいんだよ
listen_address は、デフォルト127.0.0.1だから、*とかに変更しないとだめ。

380 :NAME IS NULL:2005/08/04(木) 22:21:58 ID:???
JavaからJDBC経由でPostgresSQLを使う場合に
〜.sqlのようなファイルに書かれてるSQLを
psqlのバッチ処理のような形で実行することは可能ですか?
Java側からファイルを開いて、一件ずつ実行してくしかないでしょうか?
知ってる人いたらお願いします。

381 :NAME 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();


382 :NAME IS NULL:2005/08/05(金) 02:21:33 ID:???
もしくは標準入力からくわせてやっていいんじゃねーの?


383 :NAME IS NULL:2005/08/05(金) 12:25:00 ID:???
>>381,382
サンクス。やってみます。



384 :NAME 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単位にユーザ接続認証がかけれるのでしょうか?

385 :NAME IS NULL:2005/08/07(日) 15:19:50 ID:fNLDemHQ
>384です。
補足ですが、Oracleだとインスタンス単位にIP/PWDで認証できますが、
あの様な形を理想としています。


386 :NAME IS NULL:2005/08/07(日) 15:21:20 ID:fNLDemHQ
>384です。
IP/PWD ⇒ ID/PWD です。
はぁ、疲れてるなぁ・・・



387 :NAME IS NULL:2005/08/08(月) 10:31:47 ID:???
すみません。ちょっと質問させてください。
だいぶ前にlinuxにPostgreSQLを入れたんですが、ちょこっと設定して後放置してました。
今になってまたいじろうと思って起動させたんですが、
サービスを開始中・・・・・・・・・・[失敗]
と出ます。
参考にしているサイトは起動しないことを想定してないので、対処に困っています。
ちなみに、# /etc/rc.d/init.d/postgresql start でやったんですが・・・
よろしくお願いします。


388 :NAME IS NULL:2005/08/08(月) 12:58:19 ID:I4XsyEpH
すみません。psqlをWindowsで使おうとしていて、Cygwinをダウンロードして
ipc-daemonを起動して、postmasterをpostmaster -iで起動させると
Segmentation falut (core dumped)
とエラーがでてしまいます。postmasterの起動方法に問題があるのでしょうか?



389 :NAME IS NULL:2005/08/08(月) 17:34:33 ID:???
>>388
バージョン教えてください。

390 :NAME IS NULL:2005/08/08(月) 18:02:35 ID:???
>>384
インスタンスでわける形態であれば、portを変える事で
同じことができます。
DBひとつでやりたいなら、pg_ident.conf併用が使えると思います。

391 :NAME IS NULL:2005/08/08(月) 18:04:06 ID:???
>>387
エラーの詳細はわかりませんか?
syslogや、-lオプション等で出せると思うのですが

392 :NAME IS NULL:2005/08/10(水) 04:18:42 ID:???
教えてください。
FedoraCore2でPostgres8.0を使っていますが、
EUC−SJIS間の自動文字コード変換がどうしても理解できません。

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



393 :NAME 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側で変換するほうが、
後々の環境変化などにも対処しやすくて、楽だとは思うけどね。

394 :NAME IS NULL:2005/08/10(水) 15:47:20 ID:???
javaからやるときゃ、UNICODE指定したほうが楽

395 :392:2005/08/10(水) 18:58:55 ID:???
>>393 >>394
お返事ありがとうございます。
もう少しお付き合いいただけますでしょうか。

DBがEUC、スクリプトもEUCで
Webアプリへの入力が、Linux(EUC)とWindows(SJIS)という場合は、
WebアプリでSJISの入力のみをEUCに変換しなければならないのでしょうか?

396 :NAME IS NULL:2005/08/10(水) 20:48:30 ID:???
>>395
そういうことなんだが、なんでWindowsがSJISになる必要があるん?
携帯ならわかるけど。
って、LinuxとかWindowsってのはクライアント側のブラウザが動いている
環境のことを言っているのだととったのだが...
と、スクリプト言語は何よ。

397 :NAME 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の関数をコールする時に文字コードを指定して変換してます
だからスクリプトでも必然性があって文字コードを変更したいなら独自に変換する必要ありです

398 :NAME IS NULL:2005/08/10(水) 23:19:24 ID:???
>>394
UNICODEにしたらDBサイズが大きくなりすぎ

399 :NAME 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を指定できると言うのも、
おかしいと思う。

400 :NAME IS NULL:2005/08/11(木) 10:58:54 ID:???
オレもバックエンドだと思ってたが。
odbcでも、接続時に SET CLIENT_ENCODING 発行してるだけだし。

>>398
いや、client_encoding がunicode
DBのencodingはEUC_JP

401 :NAME IS NULL:2005/08/12(金) 00:26:07 ID:???
ttp://ns1.php.gr.jp/pipermail/php-users/2005-May/026153.html バックエンドだろ
確かにlibpqでも指定はあるけど、これはバックエンドにエンコードのタイプを渡してるだけ

402 :NAME 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 とすれば文字列として取れるんですが、、、

何がいけないんでしょうか?

403 :NAME IS NULL:2005/08/14(日) 00:47:47 ID:???
int * がいけないんじゃないのかな。

404 :402:2005/08/14(日) 01:10:18 ID:???
う・・まじすか?
テーブルのデータ型が何であろうと文字列で返ってくるんですか?
atoiすりゃおkっすかね、、、

ぶっちゃけC初心者なもんで
出直してきます


405 :NAME IS NULL:2005/08/14(日) 02:20:01 ID:???
atoiはエラー判定できないので、strtolがお勧めです。

406 :NAME IS NULL:2005/08/14(日) 15:33:04 ID:???
>>404
ライブラリで型変換させると実装がめんどくさいからね。
ユーザプログラムには全て文字列で渡すのが一番。

407 :NAME IS NULL:2005/08/14(日) 21:18:35 ID:???
でも転送量が増えて損した気分。

408 :NAME IS NULL:2005/08/14(日) 22:09:56 ID:???
>>407
そこで、ギガビットイーサかファイバーチャネルで接続ですよ
無意味に早いですよ、お客さん

409 :NAME IS NULL:2005/08/17(水) 03:17:29 ID:???
こんばんは、質問します。

plpgsqlを使用しているのですが
引数から取得した列でORDER BYをしたいのですがうまくいきません。
WHEREのときは引数から取得した文字列、数字で検索できたのに
ORDER BYではうまくいかないのでしょうか?


410 :NAME IS NULL:2005/08/17(水) 12:57:57 ID:???
>>409
引数から取得した値でORDER BY???

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

実際に書いたSQLを教えてください

411 :409: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';



412 :NAME 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;

っと、行をそのまま返すわけじゃなさそうだが、適当に弄ってくれ。

413 :409:2005/08/17(水) 14:23:04 ID:???
ありがとうございます
試して見ます

414 :409:2005/08/17(水) 14:36:32 ID:???
うまくいきました。感謝します、勉強になりました。


415 :NAME 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
などとするのですが、そんなデータベースは無いと言われてしまいます。
どこか見直す所はありますか?どこを変更すれば読めるのでしょうか。
お願いします。


416 :NAME IS NULL:2005/08/17(水) 22:53:07 ID:???
無理っぽいですなぁ
そもそも postgresqlは起動できてますか?
普通はpg_dumpとかpg_dumpallでバックアップしてないと
無理なわけですけど、諦めきれない?

417 :NAME 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

で、全部見えたらラッキー。


418 :415:2005/08/18(木) 07:24:01 ID:0C+UOkYY
>>416
あきらめきれません。
>>417
confファイルですね。確認します。

data/ 以外に設定ファイルはありますか?

419 :NAME IS NULL:2005/08/18(木) 12:10:37 ID:???
>>418
へんなことしてなきゃdata/の下だけのはず。

420 :NAME IS NULL:2005/08/18(木) 15:39:40 ID:???
バックアップも取ってないヤツに限ってあきらめがわるい、自業自得

421 :NAME IS NULL:2005/08/18(木) 15:42:03 ID:???
同じバージョン、同じCPU、同じOSなら
普通にディレクトリ data 以下のコピーだけで
データ使えるけどなあ

422 :NAME IS NULL:2005/08/18(木) 15:43:33 ID:???
ああ、OS違うのか。
どうしても駄目なら、前のOSインストールして
ダンプしてもってくればいいじゃん

423 :NAME IS NULL:2005/08/18(木) 17:13:48 ID:???
ミスってシステム消したくせに
違うOSでチャレンジしようなんて
デンジャーな人だ
普通は同じOSで同じ
バージョンでって考えるよね
やっぱデンジャーな人だ

424 :415:2005/08/18(木) 22:01:17 ID:0C+UOkYY
data/ 以下を置き直して、
$ psql my_db
としたらpgsqlというユーザーが無いとか言われました。
ユーザーの情報ってどこに書き込まれていますか?
データベースはpgsqlというユーザーで作りました。


425 :NAME IS NULL:2005/08/18(木) 22:59:25 ID:???
>>424
もう、金払ってSRAにでも頼め。


426 :NAME IS NULL:2005/08/18(木) 23:11:43 ID:???
>>424

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

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

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

お前さんのみたいに結論だけ書いたってまともに相手してもらえんよ。
元々間抜けな自体を引き起こした奴が復旧作業をまともにできるとは皆、思ってないし。
作業手順に間違いが無いわけがないとみんな思っているのだから、答えは得られんよ。
仮に答えてくれようとする人がいたとしても、お前さんのコミュニケーション手法では救援不能。

427 :NAME IS NULL:2005/08/19(金) 01:14:37 ID:???
パーミッションって言葉が彼に理解できるのか分からないけど
コピーした data/ のパーミッションは大丈夫なのか?を確認したりしろ

又は、金払う勇気があるなら俺がやってやってもいいけど
連絡のしようがないね(^^;


428 :NAME IS NULL:2005/08/19(金) 01:50:34 ID:???
>>427
>コピーした data/ のパーミッションは大丈夫なのか?を確認したりしろ

>>417が書いてくれているけど、きちんとやってなさげ


429 :415:2005/08/19(金) 22:55:50 ID:Hy2uYA9e
皆さんのおっしゃる事はいたいほど良く分かります。
いろいろ試行錯誤して、また考え直してで直します。


430 :NAME 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/

抗議メール等、ご協力お願いします
       ~~
       ↑
       重要


431 :NAME IS NULL:2005/08/20(土) 11:20:03 ID:???
>>429
大丈夫。
data以下が残っていれば、おそらく復旧できるよ。
落ち着いてゆっくりがんばれ。


432 :NAME IS NULL:2005/08/20(土) 12:16:50 ID:???
>>429
試行錯誤はともかく、作業の記録はするように。
何をやってどういう状況かを報告して、助言を貰うためには必要。
それをしなければ、時間の無駄だから。

433 :NAME IS NULL:2005/08/20(土) 18:45:04 ID:???
1.目的
2.やったこと
3.結果
最低でもこの3つを書いてくれないと答えようもない
特に結果は細かくかいてくれないとね
エラーメッセージは確実にコピペ

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

怯んで、試行錯誤してから質問しますなんて言わずに
テキパキ片付けようや

434 :NAME IS NULL:2005/08/21(日) 16:28:55 ID:???

              ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃 ∧_∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  試行錯誤の結果まだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .PowerGres.   |/


435 :NAME IS NULL:2005/08/21(日) 20:38:15 ID:???
あきらめました。MySQLに以降します。

436 :NAME IS NULL:2005/08/22(月) 02:27:38 ID:???
>>434
その箱w

437 :NAME IS NULL:2005/08/22(月) 22:41:29 ID:???
初心者とかを猛攻するのよくないと思う

438 :NAME IS NULL:2005/08/23(火) 01:43:37 ID:???
>>437
言葉はきついかもしれんが、スルーもされず、必要な手は差し伸べられていると思うけど?
みんな貴重な人生の時間を無償で提供してくれようとしてくれているのに、これ以上何を望む?

439 :NAME 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を使うと、排他制御されていない環境では値がずれるような気がしますが、
どうですか。

440 :NAME IS NULL:2005/08/25(木) 11:53:06 ID:OOhU0d1m
>439
綴り間違いました。
> を実行した結果、filed1に入る値を調べるのはどうすればいいですか。
field1です。

441 :NAME IS NULL:2005/08/25(木) 12:10:22 ID:???
>>439
insert into hoge1 (field2) values ('ほげほげ');
select currval('hoge1_field1_seq');

442 :NAME IS NULL:2005/08/25(木) 12:59:40 ID:OOhU0d1m
>441
ありがとうございました。簡単にできてしまいました。

443 :NAME IS NULL:2005/08/25(木) 17:04:41 ID:???
>>442
簡単にできてしまいました・・・

444 :NAME IS NULL:2005/08/31(水) 22:19:52 ID:+ooZCo2X
2つの関係をもつテーブルにデータを挿入したいのですが、手順で悩んでます。
親テーブルに新規データ挿入して、そのプリマリキーの値を子テーブルに持たせようと思うのですが、
挿入した行を取得するのはどうやればいいでしょうか?
挿入直後に問い合わせするのも同時に他の情報が挿入されたらだめだし。
皆さんどうやってますか?

445 :444:2005/08/31(水) 22:30:02 ID:???
すいません。自己レスです。
解決しました。
CURRVAL使えばいいんですね。
失礼しました。

446 :NAME IS NULL:2005/09/01(木) 21:42:32 ID:qS5UgNij
いきなり質問ですみません。
pg_dumpされたデータをmysqlのdbにrestoreするにはどういう手順がベストでしょうか?

447 :NAME IS NULL:2005/09/02(金) 02:16:08 ID:???
>>446
それってリストアじゃなくてインポートとかって言うんじゃない?
しかもスレ違いな質問なわけだが・・・
MySQLの load data infile 〜 辺りでpg_dumpからデータをエディタで切り出して
CSVファイルとしてインポートすりゃいいじゃん
あとはMySQLスレで質問しれ!!

448 :NAME IS NULL:2005/09/02(金) 09:29:43 ID:0wkqYTTf
教えてください。
redhat8.0でpostgre8.0.3をインストールしたんだけど
postmasterすると

FATAL: unrecognized configuration parameter "p_socket"

ってエラーがでてしまうのです。なんででしょう?


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

Googleで探したんですが有償のものが多いようです。良いものがありましたら教えてください。


450 :NAME IS NULL:2005/09/02(金) 16:48:46 ID:???
>>449
PureJavaなら
http://www.dbinspect.com/DBInspect.jnlp

451 :NAME IS NULL:2005/09/02(金) 17:16:38 ID:???
SQL実行したいだけならNetBeansとか

452 :449:2005/09/03(土) 10:15:25 ID:fKAdJmY4
>>450、451 ありがとうございます。
DBInspectを試しました。いい感じです。単機能ですが私には十分です。


453 :450:2005/09/03(土) 17:15:07 ID:???
>>450
どういたしまして
やっぱ日本語は化けるよね?

454 :NAME IS NULL:2005/09/04(日) 02:32:34 ID:5jQ/fXCk
Debianの画面をポスグレ使ってOS X v10.3.5に表示させたいのですが、
Macにはポスグレの7系と8系どちらをインストールしたほうがよいでしょうか?
よろしければお教えください。


455 :NAME IS NULL:2005/09/04(日) 11:27:57 ID:???
PostgreSQLにキレた事はありますか?

456 :NAME IS NULL:2005/09/04(日) 13:03:56 ID:???
>>449
もう遅いかもしれないが
http://squirrel-sql.sourceforge.net/

457 :NAME IS NULL:2005/09/04(日) 16:05:57 ID:???
>>454
貴方がご質問された内容は理解できません
ご質問内容をご確認の上、再度お書き込みください

458 :449:2005/09/04(日) 18:02:32 ID:???
>>456
どうもありがとうございます。こちらも試してみます。
>>453
日本語は大丈夫なようです。PostgreSQLのエンコードがUNICODEなんですが…。SJISとかは試してみません。

459 :NAME IS NULL:2005/09/05(月) 08:09:08 ID:???
7.3を使ってるのですが、Mysqlでいう@hogeのようなユーザ変数ってないんでしょうか?


460 :NAME IS NULL:2005/09/07(水) 04:07:07 ID:Ew4HgFdN
Mac OS X 10.3 においてポスグレのアカウント設定の仕方教えてください!

461 :NAME IS NULL:2005/09/07(水) 23:21:19 ID:???
>>460
http://developer.apple.com/internet/opensource/postgres.html

462 :NAME 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 = \\ となるんでしょうか?

463 :NAME IS NULL:2005/09/08(木) 20:06:03 ID:1MBlROU2
ここでPosgreの質問をしてもいいのだろうか?
許されるなら以下質問。
Ver7以前のDBからエクスポートで作られたdmpファイルを
Ver8のWin版でインポートしたいのだけど、
そもそもWin版ってどうやってコマンドで動かすの?
suで入るのとかどうやるんでしょ?

464 :NAME 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を使いたいのですが。。

以上

466 :NAME IS NULL:2005/09/14(水) 19:41:51 ID:???
>>465
varcharだからじゃないかな。text使えって言われるけど。

467 :困ったちゃん:2005/09/14(水) 19:54:37 ID:iP7kyEwM
>>466
早速のアドバイス恐れ入ります。
ある意味常識でしたか!?
早速各テーブルを一律、varchar→text に変えて再確認してみます。


468 :NAME 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が正常に効くように
  なりました。

以上です

470 :468: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)必要に応じてデータベースをリストア

471 :NAME 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'以外を選択すると、後々今回のようなある意味根本的な
問題に遭遇してしまうようです。

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

以上

473 :NAME 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)
と表示されました。
どなたか対処法をお教えください。



474 :NAME IS NULL:2005/09/19(月) 09:40:16 ID:???
posgre関係ないじゃん。
OS×スレ池よ。

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

よっぽどの理由が無い限り--no-locale = --local=Cは必須。

476 :NAME IS NULL:2005/09/20(火) 11:52:57 ID:C7LOo69J
phpPgAdminのテーブル一覧にあるEstimated Row Countって何の項目ですか?

477 :NAME 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折れたらスマソ

478 :NAME IS NULL:2005/09/20(火) 15:35:53 ID:???
質問age

479 :NAME IS NULL:2005/09/20(火) 20:20:20 ID:???
avgで平均値だすと小数点以下がやたらとたくさんでてくるのですが、
1桁に制限したいと思ってます。

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

みたいにしたらエラーになってしまいますが、何かいい方法は
ありませんでしょうか?

480 :NAME IS NULL:2005/09/20(火) 20:36:48 ID:???
>>479
SELECT avg(hoge)::numeric(5,1) FROM foo;

481 :NAME IS NULL:2005/09/20(火) 21:12:31 ID:???
>>480
でキタ━━━━(゚∀゚)━━━━ッ!!
ありがとう。ホントにありがと〜

482 :NAME IS NULL:2005/09/22(木) 19:14:46 ID:1TmFXkZ4
Fedora core 3
PostgreSQL 8.0.1
の環境で、windowsからCSEで接続しようとしています。(イントラネット)
PostgreSQL 8系にはtcpip_socketの項目が設定ファイルにないのですが、
どの項目を設定すればよいでしょうか

483 :482: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'
このようなエラーがでます

484 :NAME IS NULL:2005/09/22(木) 19:30:52 ID:???
listen_addressesに変更になった。
"tcpip_socket postgresql 8.0" でググればすぐ判るはずだが。

485 :NAME IS NULL:2005/09/22(木) 21:12:39 ID:???
listen_addresses='*'にしましたがだめです。

486 :484:2005/09/22(木) 21:37:11 ID:???
>PostgreSQL 8系にはtcpip_socketの項目が設定ファイルにないのですが、
>どの項目を設定すればよいでしょうか
と聞かれたからlisten_addressesに変更になった、と答えただけなんだが。
だから
>listen_addresses='*'にしましたがだめです。
と一行レスを付けられてもね。。。
どうして欲しいのボク?あめ玉でも買って欲しいのかい。

487 :NAME IS NULL:2005/09/23(金) 00:37:45 ID:wjUJneLB
>>473
finkじゃなくて、
http://www.entropy.ch/software/macosx/postgresql/
にあるパッケージじゃだめ?

488 :NAME IS NULL:2005/09/25(日) 01:47:45 ID:Ss0s7ZjX
外部キーとして参照されているカラムを持つテーブルがあります。
このキーが実際に他のテーブルのレコードから参照されているかどうかを知る方法はありますか?

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

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




489 :488:2005/09/25(日) 03:20:17 ID:Ss0s7ZjX
ちょっと追加します。
方法として、できれば参照元テーブルやカラムの具体名を書かない方法があるととても具合がいいです。
たとえば、FKTBL の FK を外部キー参照しているテーブルとカラムの一覧を取得して、それから動的にSQLを
生成する、といった感じです。
動的にSQLを作るのは他のプログラミング言語を使いますので、FKTBL の FK を外部キー参照している
テーブルとカラムの一覧を取得する方法はあるか、ということになるかと思います。


490 :NAME IS NULL:2005/09/25(日) 17:46:00 ID:???
これまでMySQLを使ってましたが、PostgreSQLもやろうと思ってます。
参考になるサイトや本を探してますが、お勧めはありますか?
MySQLの時、初めて買った本が、rootで動かしたりするようなもので、
サンプルも後から見ると無駄な感じのものだったりして、変な癖が
付いてしまいました。それで最初が大事だということを痛感しました。
Googleでも探して上から見てますが、上の方に参考にすべきでない
サイトが出ても自分では判断できないので、ここで尋ねてみました。

491 :NAME IS NULL:2005/09/25(日) 19:34:47 ID:???
質問お願いします。
PostgreSQLをコマンドラインで操作した時のcallBackメッセージ
"DELETE 2" "UPDATE 1"
とかをPHPからの接続で取得するにはどうすればよいでしょうか?

492 :NAME IS NULL:2005/09/25(日) 21:00:38 ID:???
>>491
DELETE された行数や UPDATE された行数だけが知りたいというなら、pg_affected_rows でいいんじゃないかな?
影響を受けた行数が返ってくる。
メッセージそのものを取得する方法は知らない。

493 :491:2005/09/25(日) 21:09:24 ID:???
>>492
"DELETE 0" "UPDATE 0" のように
影響を受けた行数が0のケースを分岐させたかったので
pg_affected_rows でOKでした。
ありがとうございました。




494 :NAME IS NULL:2005/09/26(月) 00:44:13 ID:???
>>490
PostgreSQLはマニュアルの日本語訳がオンラインで読めるはず。
本はインストールの話ばかりそれ以外であまり役に立つとは思えない。


495 :488:2005/09/26(月) 00:57:41 ID:???
自己解決です。
システムテーブル pg_constraint を引くことにより、あるカラムを外部キー参照しているカラムを取得することができました。
お騒がせしました。
でも、もし外部キー参照されうるレコードのうち実際に参照されていないレコードを削除する簡単な方法があるようでしたら、
教えていただければと思います。


496 :NAME IS NULL:2005/09/26(月) 12:31:29 ID:???
>>490
少し前のWeb+DB Pressに、
MySQLとPostgreSQLのどちらかを使える人のための使い方説明
みたいな特集があったよ

バックナンバーあさってみ

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

integer以外のデータが来た場合はそのフィールドは無視してinsertしたい場合にはどのように記述すれば良いでしょうか?


498 :NAME IS NULL:2005/09/26(月) 23:57:49 ID:zavpfg2j
▼と▽というtextが混在する列で、select * from hoge where foo = '▼'; とすると、▽もでてくる。
日本語だからか・・・

499 :NAME IS NULL:2005/09/27(火) 00:05:23 ID:???
>>498
独り言みたいだが、反応しとく。
>>468-472 を参考。

500 :NAME IS NULL:2005/09/27(火) 00:10:40 ID:???
>>499
サンクス。気付よ俺

501 :497(497のときの名前は忘れてください):2005/09/27(火) 01:43:04 ID:???
case when と http://oshiete1.goo.ne.jp/kotaeru.php3?q=1597026 を
参考にして解決できました。 掲示板汚し失礼しました

502 :NAME IS NULL:2005/09/27(火) 10:44:01 ID:jV9Mpaom
カラムの型変更って出来ますか?


503 :NAME 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);


504 :NAME IS NULL:2005/09/27(火) 10:58:10 ID:???
>>503
ありがとうございました。勉強します。

505 :NAME IS NULL:2005/09/27(火) 11:01:21 ID:???
マニュアルも読まないクソが勉強しますっても白々しいだけ。

506 :NAME IS NULL:2005/09/27(火) 11:32:19 ID:???
>>505
使用しているverが7.21だったのでtypeはなかった。
renameしてadd後、移動します。

507 :NAME 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をインストールしました。

508 :NAME 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等でいろいろ探してみたのですが、見つかりませんでした。
識者の方、よろしくお願いします。

509 :NAME IS NULL:2005/09/27(火) 22:53:18 ID:???
「統計情報収集器」で探すが良かろう。

510 :NAME IS NULL:2005/09/28(水) 03:24:18 ID:???
copy ... from で日本語を含んだファイル名を指定すると file not found になるんですが、
これを回避する方法はないでしょうか。

\copy や copy ... from stdin で流しめばできるのですがサーバ側でやらせたいもので。


511 :508:2005/09/28(水) 11:53:41 ID:U+ILpcZz
>>509
ありがとうございます!!見つかりましたー。
これから、いろいろと弄ってみます。
感謝!感謝!!

512 :NAME 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
して再度テーブルを作り直しましたが,直りませんでした.

解決策やヒントがあればアドバイスお願いします

513 :NAME IS NULL:2005/09/29(木) 10:25:03 ID:???
>>512
--no-locale は postgresql.confでは書きかえれない項目もあったはず。
initdb --no-locale からやり直し。

514 :NAME IS NULL:2005/09/29(木) 10:37:20 ID:???
PostgreSQL8.0.3で、いちばん手っ取り早いパフォーマンスの
向上設定って、どんなんでしょう?
マシンスペックは上げずに。

515 :NAME IS NULL:2005/09/29(木) 11:05:01 ID:???
>>514
"-O2"オプションつけてコンパイルする。
Shared Memoryを多めにとる。

516 :NAME IS NULL:2005/09/29(木) 11:19:07 ID:???
>>515
レスありがとうございます。
手順的には、
(1) pg_dumpでバックアップ
(2) 再コンパイルして再インストール
(3) バックアップしたDBをリストア

って感じでよいでしょうか?

517 :NAME IS NULL:2005/09/29(木) 11:38:11 ID:???
>>516
pg_dumpallのほうがよかったような・・・
詳しくは以下をどうぞ。
http://www.postgresql.jp/document/pg800doc/html/backup.html#BACKUP-DUMP-RESTORE

518 :NAME IS NULL:2005/09/29(木) 13:58:40 ID:???
>>517
なるほど、pg_dumpallですね。
ありがとうございますた!

519 :NAME IS NULL:2005/09/29(木) 19:18:10 ID:???
postgresの機能で帳票作って使ってる人っています?

520 :NAME IS NULL:2005/09/30(金) 01:35:08 ID:???
>>514
コンパイルより先に、Shared Memoryを多めにとるの方をやったほうがよくないか?


521 :NAME IS NULL:2005/09/30(金) 18:20:26 ID:CBPENad1
5000万件くらいのアクセスログデータの加工・集計したいんだけど、
やっぱpostgresじゃムリポ?
OracleにSAS被せるしかないんかな?


522 :NAME IS NULL:2005/10/01(土) 11:14:14 ID:???
そんなん件数だけで判断できるわけがない。
パフォーマンスの話じゃなくてシステム的な制約、問題等についてならば、
とりあえず延べレコード数20億までなら問題は生じないと考えて良い。

523 :NAME IS NULL:2005/10/01(土) 13:46:28 ID:???
ログデータだと汎用RDBではなくて自作したほうが速度的にいい場合も多いよ
並列度合いを簡単に最適化できるしね

524 :NAME IS NULL:2005/10/01(土) 15:04:31 ID:???
つミ awk


525 :NAME IS NULL:2005/10/01(土) 15:24:00 ID:???
awkerの俺に言わせていただくと、その件数はちょっときつい
DBで扱えるならそっちがいいんじゃないかなー

526 :NAME IS NULL:2005/10/01(土) 15:57:14 ID:???
>>521
参考にならないと思うけど
毎日2000万件くらいのApacheのログを
すっげーショボいマシンのMS SQL Serverに突っ込んでいろいろやらされてるから
いまどきのマシンにPostgres入ってるなら大丈夫じゃね?

527 :NAME IS NULL:2005/10/01(土) 16:35:31 ID:???
ログデータの変換→登録に時間がかかるから、RDBの方が余計な処理が多いだろ。
そのデータを何度も使い回すなら、DBに登録する価値も出てくる、かも知れないが。
その場合であっても、RDBじゃなくてDBMでの実装を先に考えた方がいいのでは?
まずPerlなどで作ってみて、テスト。
その後、Cで作り直すか、RDBMSに頼るか判断してみれば?

528 :NAME IS NULL:2005/10/01(土) 17:16:59 ID:???
Cで作り直すかRDBMSに頼るかって、...選択肢としておかしいだろう。

529 :521:2005/10/03(月) 11:10:32 ID:X8D6IlXJ
みなさん、ありがd
5000万件の中から、特定のクッキーやリファラを集計して、
応答速度15秒前後というのを目指してました。
postgresで出来そうなことは大概やったと思うので、
やはりテキストかDBMに変えて頑張ってみようと思います。



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

ところで、DBMってなに?

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

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

ご教示いただけますと幸いです。


532 :521:2005/10/03(月) 18:03:19 ID:X8D6IlXJ
>>530
取得時に加工して、1ログがだいたい150バイトくらいです。
バッチ処理で1セッションずつの統計データをつくって集計の高速化を図ってるんですが、
それでも1000万件くらいであっぷあっぷになってますorz
集計値をバッチすればいいのですが、期間と条件の指定が複雑で出来ないのです(´・ω・`)
テキストベースでやってうまくいく算段はまるでないです。
世の中には数千万件の高速集計エンジンがあるみたいなので、色々勉強してみようかなあと思いました。

533 :521:2005/10/03(月) 18:08:07 ID:X8D6IlXJ
>>531
-o オプションでどうでしょう?
http://www.postgresql.jp/document/pg721doc/reference/app-psql.html

534 :NAME IS NULL:2005/10/03(月) 23:35:09 ID:???
>>530
> ところで、DBMってなに?
ファイルに保存するハッシュみたいなもん。


でいいのかな?

535 :NAME 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バイト分
>そのテーブルをディスクに格納するための容量を軽減でき、多少性能が向上します。


536 :NAME IS NULL:2005/10/04(火) 00:02:12 ID:???
>>535
すでに存在するレコードについては減らんよ。
サイズ減らしたいならdump/restoreすること。

537 :NAME IS NULL:2005/10/04(火) 00:21:12 ID:???
>>536
すんません、言葉が足りませんでした。

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

カラム型をint8からint4にしたときはそれなりに減ったのですが・・・うーん。


538 :NAME IS NULL:2005/10/04(火) 01:45:38 ID:???
>>533
レス有難うございます。
何といいますか、いまいちうまくいきません。。
もう少し試してみて報告できればと思います。

539 :NAME IS NULL:2005/10/04(火) 07:18:22 ID:???
>>537
8.0系だと、アライメントが8の環境ではOIDを消してもほとんど効果が無いかもしれない。
アライメントの隙間にOIDが収まる形になっているから。

540 :535:2005/10/05(水) 00:22:54 ID:???
>>539
うーむ、そういうことなのか。
今日、念のため15万件のデータで追試してwithout oidsの方がサイズが大きくなって
しまいあきらめてました。


541 :NAME IS NULL:2005/10/08(土) 06:24:24 ID:???
実践ハイパフォーマンスMySQLのPostgres版みたいな本ってありますか?

542 :NAME IS NULL:2005/10/08(土) 20:52:37 ID:g8QS5IgG
テーブルの中の行を(drop table使うんじゃなくて)delete from hoge;で全部消すと、
100000行のテーブルより、1000行のテーブルの方が倍以上時間かかるときがあるけど、普通の動作ですか。

543 :NAME IS NULL:2005/10/09(日) 00:25:54 ID:???
1行がものすごく長かったり、張られたインデックスが多いと、そういうこともあるかもしれん。

544 :NAME IS NULL:2005/10/10(月) 21:58:47 ID:???
>>543

 行が長いのって関係ある?インデックスが多いと遅くなるかもなのは同意。

545 :NAME IS NULL:2005/10/11(火) 00:58:13 ID:???
8.0.4のリリースノートの変更点の最初にある
「VACUUMによってctidチェーンがすぐに削除されてしまうエラーを修正し、ctidリンクを追跡するコードにおいてより
多くの検査を行うようにしました。
これにより、長い間存在した、非常に稀な環境におけるクラッシュという問題が修正されました。」
っていうの具体的にどういう場合か分かる人教えていただきたいです。原因不明で壊れたことが何度かあるんで
当てはまるのかどうか知りたいんですが…。

546 :NAME IS NULL:2005/10/11(火) 09:13:18 ID:???
8.0.4で、パフォーマンス的な変更ってありますか?


547 :NAME IS NULL:2005/10/13(木) 01:08:19 ID:???
MySQLの、"SHOW CREATE TABLE" 相当の命令って何?

548 :NAME IS NULL:2005/10/13(木) 19:00:23 ID:gH/NQbzp
\dt

549 :NAME IS NULL:2005/10/14(金) 00:02:20 ID:???
>>546
http://www.postgresql.jp/document/pg804doc/html/release.html#RELEASE-8-0-4

きっと求めているようなものはない

550 :NAME IS NULL:2005/10/14(金) 00:26:52 ID:hpl5A/eC
データベースはじめ立ての超初心者です。
テーブルからデータを抽出したときに、連続する5件のデータを取り出したいと思っています。
上から5件分抽出とか、上から6件目〜10件目までを抽出という操作がしたいです。
主キーで取れよといわれるかもしれませんが、
カラムの削除後に主キーに空白が出来てしまうので正確に5件取ることができません。
調べてみましたが、いいヒントが見つかりません。
どなたか解決法を教えてください!

551 :NAME IS NULL:2005/10/14(金) 01:10:16 ID:???
>>550
LIMIT と OFFSET かな。
ついでに言うとORDER BYがない場合、抽出するデータの順序は決まってない。
まぁ変わることはそうそうないけど、保証はしてないってことで。

#LIMITのような標準でない(多くのDBMSにあるがな)SQLは邪道だ!
#男は黙ってCURSORを使う! って香具師居る?

552 :550:2005/10/14(金) 01:20:27 ID:hpl5A/eC
>>551
出来ました!ありがとうございます!

553 :NAME IS NULL:2005/10/14(金) 11:30:15 ID:UgUZzQRh
便乗質問でスマソですが、AccessのTop関数みたいなのないかな?
上位10位とか・・・

554 :NAME IS NULL:2005/10/14(金) 11:33:20 ID:???
>>553
LIMIT OFFSET がそうだが釣りか?

555 :NAME IS NULL:2005/10/14(金) 11:37:41 ID:???
便乗といって同じ質問をしてくる奴がたまにいるよなw
OFFSETの指定無しで LIMITだけ使えば TOP と同じ機能のはずだ。

556 :NAME IS NULL:2005/10/14(金) 14:32:35 ID:UgUZzQRh
ごめんなさい、TOPってそういう関数でしたか。
やりたかったのは、あるカラムの上位10位と指定したいのです。
20番目も10番目と同じ値の場合は20件目も出して欲しかったのですが・・・。

557 :NAME 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;

558 :NAME IS NULL:2005/10/14(金) 18:38:09 ID:???
てすと

559 :NAME IS NULL:2005/10/17(月) 18:25:46 ID:AJD/n9Su
http://troels.arvin.dk/db/rdbms/
ここの
Top-n queryってところにそれっぽいのがあるよ

560 :NAME 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.

って怒られたんだけど、なにこれ?
何とかデータ移行したいんですが、、、
誰か教えてください。

561 :NAME IS NULL:2005/10/18(火) 12:12:08 ID:???
>>560
バージョンダウンはそもそもできないと思うが・・・

とりあえずエディタで開いて該当行削ってみたら?

562 :NAME IS NULL:2005/10/19(水) 22:07:21 ID:PRdHDbXk
date型で不定の日時を入れたいんだけど、なんか方法ある?

563 :510:2005/10/19(水) 22:13:51 ID:???
copy x from '日本語ファイル名' が file not fuond になる問題ですが、
8.1beta3 で試してみたところ修正されていました。

8.0.4 ではだめでした。
8.0 系にもbackportしてくれよー。

564 :NAME IS NULL:2005/10/19(水) 23:10:10 ID:???
>>562
null

565 :562:2005/10/20(木) 00:24:37 ID:Lz1HsY+Z
>>564
いや、date型のままで年、月、日を個別にnull指定したいということなんだが・・・
ムリだろうか。

566 :NAME IS NULL:2005/10/20(木) 00:59:42 ID:???
>>565
例えば
2005年NULL月29日
ってことだろうか?
たぶん無理だろうけど、
なんでそんなことしたいん?

567 :NAME IS NULL:2005/10/20(木) 09:54:46 ID:???
>2005年NULL月29日

ワラタ

568 :NAME IS NULL:2005/10/20(木) 13:07:45 ID:???
>>566
565さんじゃないけど、例えば「5月の注文を受けたけど日付は不明」みたいなことは、
ありうるかもね。あんまりいいこととは思えないけど。

569 :NAME IS NULL:2005/10/20(木) 14:32:54 ID:???
>>568
それってdate型の意味が無いような・・・


570 :NAME IS NULL:2005/10/20(木) 15:55:03 ID:???
設計見直した方が良さそうだ

571 :NAME IS NULL:2005/10/20(木) 21:17:23 ID:???
期間なら、開始と終了を持たせればよいけど、
「毎月15日の予定」を表したいと思うと、ちと面倒か。

572 :NAME IS NULL:2005/10/20(木) 21:49:33 ID:???
>>571
ちなみにそういうときってどーするもん?
漏れはそういうときはtext型で「15」だけもって、
あとは言語で処理なんだけど、もしかして間違ってる?


573 :NAME IS NULL:2005/10/21(金) 03:00:19 ID:???
年月日がそれぞれ別なら普通 Year / Month / Day_of_month とかに分けるだろ

574 :NAME IS NULL:2005/10/21(金) 04:14:36 ID:LymSDkRT
文字化けする〜
レン鯖でpostgresqlをjspで操作しているのだが
文字コードが違うのか
「〜」
が削除されたり「?」になったりする
他の文字は全て正常に格納されるから逆に不思議だ
こっちはShift_JISで操作しているが、向こうの文字コードの設定が不明
sql操作で設定された文字コードを知ることは出来ないだろうか

鯖缶に聞け はなし
そんな鯖やめろ もなしで

575 :NAME IS NULL:2005/10/21(金) 04:52:43 ID:???
>>574
SHOW server_encoding ;
たぶんUNICODEなんだろうな。

ttp://www.asahi-net.or.jp/~hc3j-tkg/unicode/#microsoft

576 :574:2005/10/21(金) 05:06:15 ID:LymSDkRT
>>575
サンクス EUC_JP だった
UNICODEもEUC_JPも試したんだが・・・おかしい

577 :NAME IS NULL:2005/10/21(金) 05:10:16 ID:???
>>576
Javaってよく知らないんだけど、
内部はUNICODEじゃなかったっけ?

578 :574:2005/10/21(金) 05:10:46 ID:LymSDkRT
もしかして文字コードの指定方法が間違ってるとか・・・?
今は言語で指定しているだけだが・・・

579 :574:2005/10/21(金) 05:12:46 ID:LymSDkRT
>>577
いや、実は俺もよく知らない汗
JSPでHTTPサーバ経由ならShift_JISでないと化けるから
値の受け渡しにはShift_JISを設定してる

580 :NAME IS NULL:2005/10/21(金) 12:37:33 ID:???
JSPで文字化けって検索しないのかよ

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

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

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

postgresの問題じゃないよ


581 :NAME IS NULL:2005/10/21(金) 12:38:21 ID:???
>>579
× Shift_JIS
○ Windows-31J

582 :NAME IS NULL:2005/10/21(金) 12:55:41 ID:???
旧漢字って格納する方法ありますかね?
はしごたか、とか。

583 :574: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

584 :NAME IS NULL:2005/10/21(金) 15:13:30 ID:???
>>583
ユーザーの入力した文字コードが何かによってかわる
今回の場合はMS932なんでしょ?
ならそれでいい

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

Postgresでそのへんやってくれるパッチ入れたJDBCドライバもある


585 :574:2005/10/21(金) 15:56:41 ID:LymSDkRT
>>584
ユーザ MS932
格納  indows-31J
で、取り出し後の指定は特にしていないのだが・・・
なにかマズーですか

586 :582:2005/10/21(金) 15:58:28 ID:???
>>583
d。見てみます

587 :NAME IS NULL:2005/10/21(金) 19:45:15 ID:bovSjVTN
質問があります。

テーブル1のリストの各々が専用のテーブルを所有していて
そのテーブル1を専用のテーブルの内容を使ってUPDATEで更新
したいのですが、そういうのはできるのでしょうか?
できるとしたらどのような感じになるのでしょうか?
今PHPでプログラムを組んでいるのですが、
最悪の場合、テーブル1のリストの配列を用意して
1つ1つ更新しなければならないのかなと・・・

588 :NAME 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だけマッピング先が違うのがむかついてくるはず


589 :574:2005/10/21(金) 21:40:09 ID:LymSDkRT
レスくれたみなさんありがとうございます
俺は馬鹿だ・・・contenttypeの指定してたorz
直したらうまくいきました、ほんとありがとう

590 :NAME IS NULL:2005/10/21(金) 21:54:34 ID:???
ドジっ子キター

591 :NAME IS NULL:2005/10/21(金) 22:27:35 ID:DRbqnPSE
windowsXPにて
手違いでなんどかインストールとアンインストールを繰り返しているうちにインストールができなくなってしまいました。
インストール中のファイルシステムのアクセス権設定のところで止まってしまいます。
コメントは「インストールされたファイルの権限設定にしっぱいしました。ログファイル’D:\temp\peperm.log'を見てください。」とのことです。
でそのログをみてみると突然「アクセスが拒否されました」とでているだけで原因がわかりませんでした。
Cディスクにインストールしようとしても結果は同じでした。
誰か原因がわかる方いらっしゃったらレスくださいm(_ _)m

592 :591:2005/10/21(金) 22:35:59 ID:???
すいません。
Cディスクに入れたらインストールできましたorz
空き容量の関係でDドライブに入れたいのですが、不可能なのでしょうか?

593 :NAME IS NULL:2005/10/21(金) 23:11:34 ID:???

CドラがNTFSで、DドラがFATとか。

594 :NAME IS NULL:2005/10/21(金) 23:35:00 ID:???
ご指摘どうもですm(_ _)m
プロパティで見たところどちらもNTFSのようです。

595 :NAME IS NULL:2005/10/21(金) 23:41:15 ID:???
まぁPostgres8はDB格納先かえれるから
Postgres本体はシステムドライブで、データは他のドライブでというのもありだろうね

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

エラーメッセージのパスがなんか変な気がする・・・

596 :NAME IS NULL:2005/10/22(土) 00:15:23 ID:P6gGuKwd
7.3.4使ってるんだけど、
レコード数に制約とかない?
ディスクに許すだけ格納可能?

597 :NAME IS NULL:2005/10/22(土) 07:49:42 ID:???
>>596
最大10億行/テーブル くらいかな。実質 制限はないと思ってよい。

598 :NAME IS NULL:2005/10/22(土) 11:50:20 ID:???
性能の制約があるから、実質は100万行まで。

599 :NAME IS NULL:2005/10/22(土) 15:46:05 ID:???
んなわけない。
結局は要件と設計しだいだが、実際に10億件くらい扱っていて
実用的に使えているシステムはある。

600 :NAME IS NULL:2005/10/22(土) 17:59:31 ID:G1rn7p/p
>>599
すみません、大きな規模のDBを扱ったことないので聞きたいのですがどのくらいのハードで動いてるんですか?それ

601 :NAME IS NULL:2005/10/22(土) 18:08:50 ID:???
そんなに凄いレコードで
ちゃんとvaccumとかデータベースのバックアップが
上手くいくもんなんだろうか

602 :NAME IS NULL:2005/10/22(土) 20:24:42 ID:???
嘘に決まってるじゃん。


603 :NAME IS NULL:2005/10/23(日) 08:51:45 ID:???
>>600
5年くらい前の中堅PCサーバーだよ。
ディスクも入れて700万円くらいの。

>>601
vacuum/バックアップは一晩かかるけど特に問題は出ていない。
reindexは2-3日かかってしまうけどね。

604 :NAME IS NULL:2005/10/23(日) 11:15:58 ID:???
OSのエディション教えてくれ

605 :NAME IS NULL:2005/10/23(日) 12:56:22 ID:???
vacuumを考えると8じゃないとこわいかもな

606 :NAME IS NULL:2005/10/23(日) 14:07:25 ID:???
100万行単位ならそう性能面で問題は感じないな。
xeon 3GHz 4 発のサーバ。
数千万行になるとテーブルの構造や SQL にだいぶ注意が必要。

607 :NAME IS NULL:2005/10/23(日) 14:43:40 ID:???
どのDBMSでも同じだけど、大規模DBでは

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

きちんとチューニングしようとしたら、プランナ/オプティマイザの特性や
内部構造に関する知識が不可欠。


608 :NAME IS NULL:2005/10/24(月) 04:40:58 ID:???
>SeqScanかかったらアウト
糞だな。

609 :NAME 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
みたいになります。

どうしたら解決できますか?

610 :NAME IS NULL:2005/10/24(月) 23:06:16 ID:???
>>609
Postgresのバージョンぐらいは書こうな。
多分、>>472 辺りの問題ではないかと思われ。

611 :NAME IS NULL:2005/10/25(火) 00:06:20 ID:???
Windows版だったらロケールとかいじらなければそのままうまくいくのにね・・・

612 :NAME IS NULL:2005/10/25(火) 01:24:34 ID:???
8.1beta4age

613 :NAME IS NULL:2005/10/25(火) 15:34:11 ID:nrK3GlWT
ミラクルリナックスV3.0にPostgreSQL 8.0.3または8.0.4を
インストールするときの問題点や注意点、その組み合わせで
運用した場合の問題点等ありますでしょうか?

614 :NAME IS NULL:2005/10/25(火) 20:04:46 ID:???
そんなもん、ミラクルにきけよw

615 :NAME IS NULL:2005/10/25(火) 23:07:53 ID:???
>>613

そういうレベルでインストールすること自体が一番の問題点だな。


616 :NAME IS NULL:2005/10/25(火) 23:39:38 ID:???
>>615
せっかくインストールして楽しもうという人にそんなこと言うのはイクナイ

617 :NAME IS NULL:2005/10/26(水) 09:10:42 ID:???
しかし、なんでミラクルよ

618 :NAME IS NULL:2005/10/26(水) 09:48:15 ID:???
>>617
会社で焼いてきたから

だろ?

619 :NAME IS NULL:2005/10/26(水) 14:13:45 ID:???
遅レスですが、>>411 みたいなのって動的SQL使わずになんとかならないもんですかね。
WHERE句はCASE-WHENでいけたんですが…

620 :NAME IS NULL:2005/10/26(水) 19:19:00 ID:???
ものスゴイ嫌がらせ思いついた
1 :以下、名無しにかわりましてVIPがお送りします :2005/04/25(月) 04:44:27 ID:cxwJSDGr0
例えばさ、ID非表示の板で質問したやつがいるとするじゃん?
で、その答えがくる前に名前欄にそいつのレス番入れて
「すみません、自己解決しました」って入れるんだよ
マジコレはハマるwwwwwww


621 :619:2005/10/26(水) 19:21:45 ID:???
すみません、自己解決しました

622 :NAME IS NULL:2005/10/26(水) 19:24:27 ID:???
>>621
詳細教えて

623 :NAME IS NULL:2005/10/26(水) 20:28:12 ID:???
>>620
はやく氏ねよ。

624 :NAME IS NULL:2005/10/27(木) 07:10:38 ID:???
where id between 100 and 200
にしたら1100とか1203とか左から解釈したで
あろうものがひっかかります
なんでですか


625 :NAME IS NULL:2005/10/27(木) 08:07:51 ID:???
>>624
id をchar/varcharで定義してない?

626 :NAME IS NULL:2005/10/27(木) 09:50:05 ID:j1fXyoBk
巨大なデータベースで
インデックスを適切に作ってもなおかつ
SELECT するのに時間がかかる場合に,
検索を高速化する方法はあるのでしょうか?

627 :NAME IS NULL:2005/10/27(木) 10:09:50 ID:???
>>626
バキュームを定期的にするとか…

628 :NAME IS NULL:2005/10/27(木) 10:12:29 ID:???
>>626
本当にインデックスが使用されているのかと…

629 :NAME IS NULL:2005/10/27(木) 10:12:40 ID:???
>>626
分けるとか…

630 :626:2005/10/27(木) 10:17:56 ID:j1fXyoBk
>>628
explain で確認しているので
インデックスが使われていることはまちがいないです

1つの800万くらいレコードがあります

631 :NAME IS NULL:2005/10/27(木) 18:37:34 ID:???
>>630
インデックスが適切に使われてないとか。
複数カラムでインデックスはってるのに、使ってるのは
単カラムとか。

対策としては、テーブルわけるとかDBわけるとか
postgresには複数のテーブルをひとつのテーブルとして
扱う機能はなかったっけ?joinじゃなくて。

632 :626:2005/10/28(金) 09:26:34 ID:Hm3lQFg3
いろいろ教えてもらいありがとうございます

関連した質問で

1つのテーブルで,
たとえば n 個レコードがあって
その中から SELECT して
k 個がヒットする場合に
いちばんうまくインデックスをはって
ヴァキュウムもしてあって,
最良の状態でも
最低どれくらいの計算量がいる,と
見積もるような公式というか方法論はあるのでしょうか?

633 :NAME IS NULL:2005/10/28(金) 09:33:12 ID:???
>>632 EXPLAIN

634 :NAME IS NULL:2005/10/28(金) 09:38:50 ID:Hm3lQFg3
>>633
EXPLAIN は SQL の入力に対して,
どのように計算して,
どれくらい計算量がいるか見つもるものですよね?

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

その限界値と EXPLAIN の出す計算量の見つもりを
比較して近い値になったら
もうインデックスは最良になってると,
あきらめがつくわけです

635 :NAME IS NULL:2005/10/28(金) 09:58:11 ID:???
>>634
理論的な限界を見積もるには、PostgreSQLのオプティマイザ以上の知識と計算が必要。
オプティマイザがどういうルールで動作しているか、知っているのか?

単純な場合に限り、計算量のオーダーなら簡単に見積もれるだろう。
全検索ならO(N)、インデックス検索ならO(logN)。
それ以上に複雑な場合は、オプティマイザがやっていることを、
オフラインで手計算することになりかねない。

636 :NAME IS NULL:2005/10/28(金) 12:15:11 ID:GzfQtyZE
id
1
2
3

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

PostgreSQLのストアドが詳しく説明されている日本語サイトはないでしょうか?
本家日訳を見ながらやっているのですが…。

637 :NAME 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

というテーブルが作られるようにするにはどうしたらよいのでしょうか。


638 :NAME 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;

639 :637:2005/10/28(金) 13:51:46 ID:???
>>638
はい、これで希望した動作になりました。ありがとうございます。


640 :NAME 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('テーブル名もしくはサブクエリ','連結するカラム名');

641 :640: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;

最後に先頭のカンマを除いてやるのに、
わざわざ関数を作って呼び出すのも
なんだかなぁ〜。

642 :NAME IS NULL:2005/11/01(火) 12:32:13 ID:???
ポスグレで固定長ファイルをテーブルに読み込む方法ってありますか?

643 :NAME IS NULL:2005/11/01(火) 15:48:33 ID:???
異なるバージョンのプスグレを、異なるポートを使って
同時に稼働させることは可能ですか?


644 :NAME IS NULL:2005/11/01(火) 19:27:26 ID:???
Unix系なら簡単にできるとは思うが。

645 :NAME IS NULL:2005/11/01(火) 19:44:33 ID:???
質問です。
あるテーブルの容量を知りたいときはどうすればいいのでしょうか?

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

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

すみませんが宜しくお願いします。

646 :NAME IS NULL:2005/11/02(水) 02:48:59 ID:???
>>645

rootになってlsすればいいんじゃね?

647 :NAME 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

648 :NAME IS NULL:2005/11/02(水) 10:49:38 ID:o5XJyoqf
PostgreSQLでOracleのMergeと同等のものはないでしょうか?

主キー制約に反するかどうかのチェックをするのに
一旦SelectしたあとInsertのようなことをプログラムで実現しています。
これを1回のコネクションではできないでしょうか?

649 :NAME IS NULL:2005/11/02(水) 14:21:03 ID:???
insertするのならinsertなげてはねられればいいだけじゃね・

650 :645:2005/11/02(水) 15:35:04 ID:???
>>646

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

>>647

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

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

試しに100KB程度のテキストをINSERTして
容量を見たのですが、なぜか1のままでした。
VACUUMを走らせた後にやったんですが
どのタイミングで更新されるんでしょう…


651 :NAME IS NULL:2005/11/04(金) 01:26:43 ID:uTEjdO0U
psqlじゃなくてphpを使ってテーブル一覧などを
取得(表示)させる方法はありますか?

652 :NAME IS NULL:2005/11/04(金) 08:35:04 ID:???
>>651
pg_tablesを見なさい

653 :NAME IS NULL:2005/11/04(金) 11:25:43 ID:???
v8.xで使える、Windows用のODBCドライバってありますか?
インターウィズのは古いですよね?

654 :NAME IS NULL:2005/11/04(金) 20:31:03 ID:???
>>653
http://www.postgresql.org/ftp/odbc/

655 :NAME IS NULL:2005/11/05(土) 01:44:24 ID:???
>>654
禿d!

656 :NAME IS NULL:2005/11/07(月) 07:45:05 ID:???
Excel2000でODBCドライバ使うとエラーが。。。

657 :NAME IS NULL:2005/11/07(月) 11:55:31 ID:???
もっと具体的に

658 :NAME IS NULL:2005/11/07(月) 13:51:00 ID:HkTlWVSF
すんませんが、教えてください。

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

どこか有益なサイトとか、本とかあったら紹介してくださいませんでしょうか?

659 :NAME 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

です。宜しくお願いします!

660 :NAME 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

661 :NAME IS NULL:2005/11/07(月) 15:18:27 ID:DjBBhOw7
>>660

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

自分には高度すぎて理解するのに時間かかりそうです。

662 :645: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

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

664 :659:2005/11/08(火) 13:31:12 ID:gbPHUDWG
>>660

できました!ありがとうございます。
外部結合するときにテーブルではなくサブクエリを渡し、
ついでに集約関数を使うっていうことですね。

665 :662:2005/11/08(火) 15:01:57 ID:???
>>663

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

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

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

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



666 :NAME 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バイト文字以上の文字には対応できない、というメッセージ」という情報が
あったのですが、カラムの型を変えずに回避する方法って無いでしょうか?

667 :666:2005/11/08(火) 18:37:52 ID:???
charSetが間違っていたようです。
とりあえずエラーは出なくなりました。
ポスグレにはUTF-8で旧漢字を入れられることは確認できたので、
あとはJava側の問題のようです。
お騒がせしました。

ダミアンか・・・orz


668 :NAME IS NULL:2005/11/08(火) 20:12:44 ID:???
8.1正式版がリリースされましたね

669 :NAME 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)
同じ症状の人いますか?


670 :NAME 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
>よりお取り寄せくださいませ。



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

これからは、メーリングリストを Namzu します。


672 :NAME 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 をかけたいときにはみなさんどうしてますか?

673 :NAME IS NULL:2005/11/09(水) 18:15:33 ID:???
>>672
ODBCって、SQLの解釈はODBC側で行うから、PostgresのSQLはエラーになると思うけど。
SELECT TOP 100 xxx, yyy FROM table
でいいんじゃないかな。

674 :NAME IS NULL:2005/11/09(水) 23:49:20 ID:???
8,1でたね。

675 :NAME IS NULL:2005/11/10(木) 00:51:21 ID:???
>>674
>>668

676 :NAME IS NULL:2005/11/10(木) 11:38:20 ID:???
8.1でたね!

677 :NAME IS NULL:2005/11/10(木) 11:59:32 ID:???
>>676
>>675

678 :NAME IS NULL:2005/11/10(木) 13:12:37 ID:???
8.1は64bit対応ってことだけど、
16GBくらい積んでる64bitマシンに、15GBとか割り当てると
すごく速くなったりするのかな?
お金ないから試せないけどorz

679 :672:2005/11/10(木) 15:07:54 ID:K6TqKaxO
>>673
TOP をためしてみたんですが,
TOP も使えないみたいですね

このような場合,ヒット件数を
制限するにはどうしたらいいのでしょうか?

680 :NAME IS NULL:2005/11/10(木) 16:27:01 ID:???
>>678
32GB積んでる64bitマシンを自由に使えるけど、試してみようかなあ
64bitはsoも統一しなきゃならなくて、めんどくさくてやってないが・・

681 :NAME IS NULL:2005/11/10(木) 16:35:15 ID:???
>>680
外から触れるようにしてくれ

682 :NAME IS NULL:2005/11/10(木) 16:50:57 ID:???
8.1のWindowsバイナリja版がまだリリースされていないけど、ja版じゃないやつをインストールとどうなるの?

683 :NAME IS NULL:2005/11/10(木) 16:53:36 ID:???
>>680
うらやまし杉。
漏れも是非、結果を聞きたい。
テーブルサイズがデカい場合、
驚異的な差が出そうな希ガス。

684 :NAME IS NULL:2005/11/10(木) 16:54:30 ID:???
>>679
recordset に直接生SQLわたすんじゃだめ?

685 :NAME IS NULL:2005/11/10(木) 17:06:30 ID:???
>>682
インストールした後、普通に使えるけど?

686 :NAME IS NULL:2005/11/10(木) 17:13:23 ID:???
ja版ってなにがjaなの?

687 :NAME IS NULL:2005/11/10(木) 17:33:13 ID:???
>>686
ヒント: 農協

688 :NAME IS NULL:2005/11/10(木) 17:37:58 ID:???
>>687 サンキュー!

ってメニューやらドキュメントやらが日本語か
本体は同じだと思うのでそのままでもいけるでしょう

689 :NAME 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の設定が
有効になりますか? オプション設定もよくわかりません。
わかる方お願いします。


690 :NAME IS NULL:2005/11/10(木) 22:43:13 ID:???
それだけの情報でわかる加代。
postgres.confとhba.confがデフォなんだろ、どーせ。

691 :NAME IS NULL:2005/11/10(木) 22:43:43 ID:???
postgresql.confね。

692 :NAME IS NULL:2005/11/10(木) 22:46:04 ID:T7cdWFCL
ありがとうございます。
Postgresql.confですか、わかりました。
どこを編集したらいいですか?


693 :NAME 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()
と言うエラー表示が出て、データベースに繋げられません。

694 :NAME IS NULL:2005/11/10(木) 23:11:57 ID:???
>>689
いや、postgresql関連の関数が使えないphpなんだろ。
configure で--with-pgsql を指定してビルドのやり直し。

695 :NAME IS NULL:2005/11/10(木) 23:13:39 ID:T7cdWFCL


上記アドレス記載内容も参考にさっきしてみたり、
他のサイトの方法を試しましたがダメでした・・・。

696 :NAME IS NULL:2005/11/10(木) 23:15:19 ID:T7cdWFCL
>>694
PHP5となります。configureはすべて指定しました。phpinfo()も問題ないです。

697 :NAME IS NULL:2005/11/10(木) 23:22:25 ID:T7cdWFCL
>>694

解決できました。ありがとうございます!!php.iniの設定ミスでした。
相談に乗っていただきありがとうございました。

698 :NAME IS NULL:2005/11/11(金) 16:45:55 ID:vWg2X9K2
8.1のテーブルパーティショニングって、
どこに解説あるんでしょ?(´・ω・`)

699 :NAME IS NULL:2005/11/11(金) 17:33:42 ID:LMxjujID
A,B 2つのサーバにまったく同じDBが定義されていて,
サーバAの方の table1 テーブルにレコードが
たくさん入っており,
サーバBの table1 テーブルは0件しかはいっていないとします.

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

ただし,ファイルにデータを落とす方法は除外します


700 :NAME IS NULL:2005/11/11(金) 18:24:59 ID:???
>>699

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

今なら Slony-I とか使うのも面白いが

701 :700:2005/11/11(金) 18:26:51 ID:???
あ、テーブル定義が先方にあるんだったら、pg_dump のオプションに -a いれたほうがいいか
まあ無しでエラー出ても動くけど

702 :NAME IS NULL:2005/11/11(金) 18:33:18 ID:???
簡単かどうか知らんが、レプリケーションしたいというのなら、
usogresとかpgreplicatorとかSlony-I
じゃねーの。


703 :NAME IS NULL:2005/11/11(金) 18:44:03 ID:???
テーブル単位で同期させるならその中ならSlonyしかないでしょ
そもそもそれ以外は起動前に内容一致させとかなきゃならんし

704 :NAME IS NULL:2005/11/11(金) 19:00:36 ID:vWg2X9K2
db_linkでごっそりもってくるとか。。。

705 :NAME IS NULL:2005/11/12(土) 02:21:57 ID:???
マスタテーブルがいくつか、それらを結びつける中間テーブルがいくつかあって、
ジョインを多用しています。
select/insert/updateでのインデックスの張り方で、汎用的な方法ってありますか?
詰めSQLしないで、パフォーマンスを上げたいのですが。。。


706 :NAME IS NULL:2005/11/12(土) 11:55:04 ID:???
意訳すると「自分では詰めSQLしたくないから、お前らやってくれ」か?

707 :NAME IS NULL:2005/11/12(土) 13:45:14 ID:???
>>705
外注する

708 :NAME 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を使用しています。
ポストグレ側の設定がおかしいのでしょうか?
わかる方、お願いします。

709 :NAME IS NULL:2005/11/15(火) 01:09:25 ID:???
>>708
エラー内容読めよ。。。

710 :NAME IS NULL:2005/11/15(火) 08:16:09 ID:???
>708-709
ワラタ

711 :NAME IS NULL:2005/11/15(火) 08:28:53 ID:???
そのサーバー上でpsql使ってポート8040で
つながるの?

712 :NAME IS NULL:2005/11/15(火) 08:59:07 ID:DhdmtWa8
>>708
だいたい人にもの聞くのに、何が「早急に」だよ。
エラソーな。

713 :NAME IS NULL:2005/11/15(火) 09:38:55 ID:???
まともなJDBCはいつ実装されますか?

714 :NAME IS NULL:2005/11/15(火) 10:48:45 ID:???
708はPHPスレで解決(?)したみたいですよw

715 :NAME 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
いろいろありがとうございました。
ちょっと自分で本屋に行って勉強してみます。
ほんとに感謝します^^
では。


716 :NAME IS NULL:2005/11/15(火) 19:31:23 ID:D2yxaO+1
text型で「19790504」と入っているデータを年齢データ(ここ
では26歳なので26)として出したいのですが、to_timestamp
やage関数を組み合わせてもうまくいきません。

よい方法があればご教示いただきたく思っております。
宜しくお願いいたします。

717 :NAME IS NULL:2005/11/15(火) 20:07:55 ID:???
実際にやってみてダメだったコードかいてもらわんと

718 :NAME IS NULL:2005/11/15(火) 20:47:39 ID:???
>>716
timestamp型ではなくてdate型にキャストしてみるとか。
SELECT age('19790504'::date);

719 :NAME IS NULL:2005/11/15(火) 21:20:16 ID:???
>>718
どんぴしゃ回答、誠に有難うございます。

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

有難うございました。

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

このとき途中経過を得る方法はないのでしょうか?
現在,何%くらい検索がすすんでいて,
あと何秒くらいで終わるよ,とかいう情報です

721 :NAME IS NULL:2005/11/16(水) 18:45:16 ID:???
>>720
そんなことするより、チューニングすることを考えるべきかと。
インデックスやSQLの見直しなど含め。


722 :NAME IS NULL:2005/11/16(水) 18:50:39 ID:???
>>720
explainの結果から求めるとか?

723 :NAME IS NULL:2005/11/16(水) 21:20:18 ID:???
>>720
たぶん、理論的に無理。
進捗を計算するには、全体の量が先に分からないといけないのに、
全体の量が分かるのは、すべての処理が終わってからだから。

ごく単純なシーケンシャルスキャンなら、ある程度は推定できるが、
汎用的な方法は無いと思う。

724 :NAME IS NULL:2005/11/16(水) 23:26:48 ID:UHmoqGjy
explain analyze でいいんじゃない?
どの部分で時間がかかっているかわかるはずだけど。

725 :NAME IS NULL:2005/11/17(木) 23:21:50 ID:???
Count(*) してからサーバーカーソルを使うとか

お勧めはしないけど。

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

当り?

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

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


explain は承知していますが,
この目的にはあまり役に立ちません

728 :NAME IS NULL:2005/11/18(金) 10:46:17 ID:???
>>727
どれぐらいかかるのか知らないけど、30秒以上かかるようなら
設計が悪いだけだと思うけどなぁ。
1億件のjoinとかでもないだろうし・・・・

729 :NAME IS NULL:2005/11/18(金) 10:46:22 ID:???
一度実行して時間を計っておく。

730 :720:2005/11/18(金) 11:05:15 ID:orrnrvws
>>728
1000万件を JOIN とかなしで,ただ SELECT して
いるだけなんですが,
1分くらいかかることがあります

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

データベース構造を見直す余地があるのでしょうかね

731 :NAME 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
環境下で作成しています。

よろしくお願いします。

732 :NAME IS NULL:2005/11/18(金) 12:37:05 ID:???
LinuxのPostgreSQLのバージョンと、ODBCのドライバのバージョンは?

733 :NAME IS NULL:2005/11/18(金) 12:43:11 ID:???
>>730
joinでもスループット重視とレスポンス重視で異なるよ

レスポンス重視だとネステッドループ使うとかそんな感じ
ただし、スループットは大きく落ちる


734 :NAME IS NULL:2005/11/18(金) 12:50:23 ID:???
>>730
俺はSQL書きではないので、どうすれば良いとはいえないのだが、
1000万件で1分だと、なにかシステム的に問題があることを疑って、
調査することをするべきだと思う。

本当にシーケンシャルサーチになってない?
CPU使用率、負荷平均はどう?

735 :289:2005/11/18(金) 12:50:45 ID:???
>>730
1000万件で1分かかるなら構造の見直しが必要でしょう。
hashやcolumnを増やすってのはどでしょ?
サンプルデータがないので何とも言えませんが。

736 :NAME 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プロバイダが存在するので可能だとはおもいますが・・・



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

738 :NAME IS NULL:2005/11/18(金) 13:53:33 ID:PzJh+s38
>>736

データソースでそのドライバを指定しているんですが
接続できています。


739 :NAME 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だったよ。

740 :NAME IS NULL:2005/11/18(金) 14:10:06 ID:???
function requires at least protocol version 3.0
機能は、少なくともプロトコル版3.0を必要とします

741 :NAME IS NULL:2005/11/18(金) 14:11:23 ID:???
8.1からいろいろ変わってるみたいだからな。
psqlでもバージョン違いは苦しい。
pgAdminIIIも1.4にしないとね

742 :736:2005/11/18(金) 14:46:26 ID:PzJh+s38
レスサンクスです

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

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



743 :NAME IS NULL:2005/11/18(金) 16:15:38 ID:???
SunがSolarisでPostgreSQLが正式サポート来たね
まずはSolaris版を正式に出して
今後はOSにバンドルもされるそうだ


744 :NAME IS NULL:2005/11/18(金) 17:01:32 ID:???
PostgreSQL 7.4 から、protocol version 3 を使うようになったんだよね?


745 :NAME IS NULL:2005/11/18(金) 17:10:30 ID:???
>>744
そうだね。下位互換は維持されてるから接続は出来たんだね。

746 :NAME IS NULL:2005/11/19(土) 18:11:16 ID:???
CGI+PostGresの環境で
CGIにSQLを組み込みたいのですが、どうすれよいのでしょうか?

参考になるサイトなどがありましたら教えてください。

747 :NAME 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

748 :NAME IS NULL:2005/11/20(日) 04:06:11 ID:aQbjk/iW
すみませんが教えてください
Postgresでテーブルにカラム追加する際にあるカラムの前とか後とか指定する方法ってないのでしょうか?
ALTER TABLE hoge ADD COLUMN hoge_colmn BEFORE column_A みたいな・・・
もし無理だとすると、DROP/CREATE と、新規作成するのですか?

749 :NAME IS NULL:2005/11/20(日) 09:15:03 ID:???
>>748
たまにその方法を知りたいと思うけど、基本的には
列指定してデータ取り出すのが普通なのであまり用がないんだよな('A`)

750 :NAME IS NULL:2005/11/20(日) 09:24:05 ID:???
前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。

751 :NAME IS NULL:2005/11/20(日) 09:32:51 ID:aQbjk/iW
>前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。
激しく質問の意味を取り違えている感があるが・・・どういうことか意味わからん

752 :NAME IS NULL:2005/11/20(日) 09:33:52 ID:???
ああ、取り違えてたwwwwwwwwwww

753 :NAME IS NULL:2005/11/20(日) 09:43:56 ID:???
いや、いいんすよありがとうっす

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

754 :NAME IS NULL:2005/11/20(日) 16:29:08 ID:P2wr5H2F
>753
DROP/CREATE

やることなすことケチつけてくる人なら鬱になる”必要が”ないじゃんw
意味わかる?


755 :NAME IS NULL:2005/11/20(日) 17:04:03 ID:???
>>754
え?というと・・・?
ちょっと意味わかんない・・・
どの道言われるので
開き直れってことですか?


756 :754:2005/11/20(日) 17:17:08 ID:???
>755
開き直ると、トラブルになるので絶対やってはダメ。

ここまで書けばわかるよね?

757 :NAME IS NULL:2005/11/20(日) 18:04:08 ID:???
>>753
列を入れ替えるだけのVIEWを噛ませばいいんじゃない?

758 :NAME 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と同じ形式にすることはできないのでしょうか?

759 :NAME 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)


760 :759: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)


761 :758: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
のような表示なんですよね。

この結果を前提としているところがいくつもあって悩んでます・・・

762 :NAME IS NULL:2005/11/21(月) 20:02:48 ID:???
>>761
結果が1日以下なら'HH24:MI'にするようCASEで切り替え。

763 :NAME IS NULL:2005/11/21(月) 20:08:20 ID:???
>>762
ありがと。
やっぱ、そうなりますよね・・・
そうすると今度は、マイナス値の場合どうするか?とか、
いろいろcareしなければならなくなるんですよね。
やっぱり簡単には行かないんですねぇ。
ちょっと、別の場所でどうにかならないか、考えてみます。
ありがとうございました。

764 :NAME IS NULL:2005/11/22(火) 02:39:19 ID:???
SELECT FOR UPDATEでロックされている行を
取得しないようなSELECT文ってどうやって書くの

A B *
A C
ってあってほぼ同時に*の行を参照する2つの
アプリケーションあった場合一方だけ情報とれて
もう一方は空を返すようなことってできますか?
うまく説明できんけど2つ同じ情報拾ってきて
DELETEなりUPDATEするとおかしくなると思うんだけど
こうゆう場合ってどうすればいいの?


765 :NAME IS NULL:2005/11/22(火) 08:34:41 ID:???
>>764
言っていることがイマイチ理解できないんだけど、
同時に SELECT, DELETE, UPDATE 「できないようにするため」にロックかけるんでしょ?

766 :NAME IS NULL:2005/11/22(火) 14:08:40 ID:???
2つ目のSELECT FOR UPDATEは、最初のやつの
トランザクションが完了するまで待たされるよ。

767 :NAME IS NULL:2005/11/22(火) 17:15:24 ID:???
ちなみに2つ目のSELECTに「FOR UPDATE」句が無い場合は
待たされなくて、1つめのトランザクション開始前の情報が
返される。

768 :NAME IS NULL:2005/11/22(火) 22:10:06 ID:???
さらに SERIALIZABLE にしておけば、更新とオーバーラップしても問題ない。

769 :NAME IS NULL:2005/11/23(水) 07:29:23 ID:???
つまり、排他制御関係を、もう一度勉強し直すべきだということだな、まじめな話。

770 :NAME IS NULL:2005/11/25(金) 22:37:33 ID:4JCvO8XR
自分や信頼のおける少数以外にはデータベースの内容を閲覧させたくない場合、
パスワードで制限かける他にデータベース自体を暗号化して読みだしてもなんら意味をなさないように
することはできますか?

771 :NAME IS NULL:2005/11/25(金) 23:13:02 ID:???
一度やってみればいいとおもう。出来るんじゃないかと思う方法で。

772 :NAME IS NULL:2005/11/25(金) 23:49:58 ID:???
md5やshaで暗号化しちゃいなよ大島

773 :NAME IS NULL:2005/11/26(土) 11:58:52 ID:???
YOU、やっちゃいなよ

774 :NAME IS NULL:2005/11/26(土) 13:35:41 ID:???
>770
信頼のおけるメンバーの方を増やしていけばいいんじゃね?

775 :NAME IS NULL:2005/11/26(土) 22:14:19 ID:???
>>772
md5やshaは「暗号化」じゃないと何度言ったら…

776 :NAME IS NULL:2005/11/27(日) 01:14:42 ID:???
最近はハッシュ関数すら知らないヤツが多いな

777 :NAME IS NULL:2005/11/27(日) 13:30:59 ID:???
>776
YOU、だいじょうぶか?

778 :NAME IS NULL:2005/11/27(日) 14:23:41 ID:???
>>775
復元できない暗号化なんてありえないからなぁ・・・

じゃあなんて言えばいいだろう? 『合言葉』か?

779 :NAME IS NULL:2005/11/28(月) 10:33:54 ID:???
Digest=消化


780 :NAME IS NULL:2005/11/28(月) 11:41:00 ID:???
やってみちゃったことがある俺ガイル>ハッシュ化データ格納

無差別にハッシュ化すると検索がめんどくさくなるので注意。
検索条件に該当するカラムがハッシュ化されてると、テーブルを全部セレクトして
プログラムサイドでデコードしてから検索ってなる。

781 :NAME IS NULL:2005/11/28(月) 12:45:37 ID:???
postgresql.conf
cryptogram = true
crypt_column_type = 'text,varchar'
後はpostmaster起動時に--crypt_key hogehoge

782 :NAME IS NULL:2005/11/29(火) 13:18:03 ID:???
>781
これは、DBのデータファイルをダンプしても
内容がわからない様にするってことですよね?

783 :NAME IS NULL:2005/11/29(火) 18:58:43 ID:???
>データベース自体を暗号化して読みだしてもなんら意味をなさないように
つーことだな

784 :NAME IS NULL:2005/11/29(火) 19:12:55 ID:???
普通に考えてだれでもファイルシステム触れる権限あるほうが問題じゃね?

785 :NAME IS NULL:2005/11/29(火) 21:11:58 ID:???
通常ならpostgresユーザーしか触れないはずだしな

786 :NAME 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側にも何か設定がいるのでしょうか?
何かヒントがあれば教えて下さい。よろしくお願いします。

787 :NAME IS NULL:2005/11/30(水) 02:08:38 ID:???
>>786
とりあえずクエリーに問題が無いかチェック。
SELECT -> ループで UPDATE ……という具合ではどう頑張ってもパフォーマンス落ちるし。

788 :786:2005/11/30(水) 07:42:24 ID:???
>>787

ありがとうございます。

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

a


789 :NAME IS NULL:2005/11/30(水) 08:13:40 ID:???
>>788
indexの張り方が悪いんじゃ?

790 :NAME IS NULL:2005/11/30(水) 09:25:03 ID:???
>>789
テーブルの設計もね

791 :NAME IS NULL:2005/11/30(水) 10:14:43 ID:???
標準PostgreSQL RDBMSの理解からWebアプリケーションの開発と運用まで
http://www.amazon.co.jp/exec/obidos/ASIN/4797332034/

792 :NAME IS NULL:2005/11/30(水) 10:35:16 ID:???
>>788
トランザクションにしてる?
してるならどこからどこまでをはさんでる?

793 :786:2005/11/30(水) 11:24:53 ID:???
>>789 >>790

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

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

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

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

>>792

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





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

root は見れちゃいますよね?
root だからダンプして内容みても構わないということには
必ずしもならないと思うのですよ。

795 :NAME IS NULL:2005/11/30(水) 13:25:18 ID:???
rootって復旧とか含めて最高権限だから逆に見られないとまずいのでは?


796 :NAME IS NULL:2005/11/30(水) 13:45:37 ID:???
>>794
誰でもrootになれるって状況がむしろ望ましくないのでは。

サーバの管理権限等をめんどくさがらずにユーザ毎に細かくsudoの権限とか設定するのが
理想じゃないかと。若干スレ違いな気はしますが。

797 :NAME IS NULL:2005/11/30(水) 15:43:30 ID:???
そのマシンの管理者にも見られたくないってんなら
暗号化しかないだろうな。レンタルサーバ?

798 :NAME IS NULL:2005/11/30(水) 16:36:02 ID:???
すいませんが質問させてください。

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

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

PostgresSQLのバージョンは8.0です。

799 :794:2005/11/30(水) 19:42:54 ID:???
ほんとトンチンカンな人が湧いてきますねw

おっと、>797さんは別よ。

800 :NAME IS NULL:2005/12/01(木) 09:56:29 ID:WWfvxLeC
レンタルサーバーを使って何かたくらんでいるから、サーバーの管理者に
見られたくないと。要するに、root と信頼関係がないということだ。

801 :NAME IS NULL:2005/12/01(木) 12:04:01 ID:???
技術的な話しと運用の話しを切り分けられないのw


802 :NAME IS NULL:2005/12/01(木) 12:49:24 ID:???
794必死だな

803 :NAME IS NULL:2005/12/01(木) 20:50:30 ID:???
>802
794じゃないが切り分けできてねーじゃん

>795と>796を800回読んでからカキコしなよ

804 :NAME IS NULL:2005/12/02(金) 08:28:48 ID:???
ファイルを参照できるのと内容を理解できるのは違うと思う。。。

805 :NAME IS NULL:2005/12/02(金) 18:53:06 ID:???
まあ、いくらファイルシステム上のデータを暗号化しようとも、
root様ならpostmasterプロセスのメモリを直接覗いて暗号キーgetとか
何でもありだからな。

806 :NAME IS NULL:2005/12/02(金) 19:05:12 ID:???
まぁ実際レン鯖のrootがそこまで出来るスキル持っているかどうかは別だがw

807 :NAME IS NULL:2005/12/02(金) 20:51:16 ID:???
>805
なるほどね〜


808 :NAME IS NULL:2005/12/02(金) 23:26:58 ID:???
>>806
かりに持っているとして、わざわざそんなことをするとしたら、警察が
裁判所の令状を持ってきて調査しなきゃいかんような場合だろう。
ま、794が何をたくらんでいるのかは知らんけど、レンタルサーバー
なんか使うのはやめて、固定IPをもらって、いつでも根こそぎ破壊できる
サーバーを手元に構築したら? 通信も暗号化しようね。令状があれば、
プロバイダはパケットをダンプして警察に提出するぞ。

809 :デフォルトの名無しさん:2005/12/03(土) 00:43:48 ID:pAMqxFb4
認定試験のCE silverとろうとおもうのだけど、取ってる人いますか?
社内での評価は未知数、Oracleのプラチナ持ってるけど、この資格も
難化する前に取っておこうかなと思ってます。

810 :NAME IS NULL:2005/12/03(土) 15:39:14 ID:???
>808
想像力が香ばしいのぉw

>809
典型的な(ry


811 :NAME IS NULL:2005/12/05(月) 18:25:15 ID:???
クラッキングの脅威とか

812 :NAME 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

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

なぜ?


813 :NAME 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


814 :NAME IS NULL:2005/12/07(水) 00:26:49 ID:???
>>812
アプリのクラスパスに追加したほうがいいかと

815 :NAME IS NULL:2005/12/08(木) 03:18:48 ID:???
pgAdminで「制約」から主キーやユニークキーを選択→リフレッシュすると、
右カラムにインデックス中の1番上のものとして表示される。
実害はないのかもしれないけれど、気持ち悪い・・・既出なのかも

WinXP SP2
PostgreSQL8.1
pgAdmin III 1.4.0

816 :NAME IS NULL:2005/12/08(木) 11:41:24 ID:???
>>815
そうなる場合とならない場合があるね

817 :NAME 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



818 :NAME IS NULL:2005/12/10(土) 00:37:19 ID:???
>>817
update shoseki_tbl SET name='データ' where id=000101;

819 :NAME IS NULL:2005/12/10(土) 13:48:29 ID:???
psql 使ってるなら、\h UPDATE とかで書式調べようぜ
さらに、readline組み込んであれば、TABで補間できるぞい

820 :NAME IS NULL:2005/12/11(日) 15:09:54 ID:???
su - postgres
ってやったら
could not open session
ってなった。なんで?

821 :NAME IS NULL:2005/12/11(日) 17:03:19 ID:???
Permission denied が could not open session の前に出てるなら、
Permission denied といわれているディレクトリのパーミッションを確認。
何も出てないなら /etc のパーミッションが変なのでは?
755 とかにしとけ。

822 :NAME IS NULL:2005/12/11(日) 20:50:17 ID:???
すみません、まだ初めて間もないんですが教えてください。
外注で作ったデータベースを追加することになったんですが

外注の人が置いていったTeratermでアクセスして
日本語を入力すると消えてしまいます・・・
日本語ってどうやれば入力できますか?

823 :NAME IS NULL:2005/12/11(日) 20:58:54 ID:???
Postgres以前にDBがどういうものかわかってるのかな
なんかしらないで触って壊しそうな感じがするんだけど

824 :NAME IS NULL:2005/12/12(月) 10:50:22 ID:???
>>822
自分で触ろうとせずに、その外注をふたたび呼びなおすか
別の外注をさがしましょう。


825 :NAME IS NULL:2005/12/12(月) 11:42:32 ID:???
>>822
日本語パッチあてたreadlineを組み込んでpsqlのリコンパイル

826 :NAME IS NULL:2005/12/12(月) 11:50:53 ID:???
>>825
そういえばそんな問題もあったね。
psql -n でreadlineを無効にしてもいいんジャマイカ。

827 :NAME 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認証に失敗しましたとエラーが出ます。


これを解消するには、どのような作業が必要なのでしょうか?

828 :NAME IS NULL:2005/12/12(月) 23:22:10 ID:x77qREp1
他力本願ですみません。

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

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

誰かお助けください!

829 :NAME IS NULL:2005/12/12(月) 23:22:49 ID:???
hba.confにhogehogeを追加する

830 :NAME IS NULL:2005/12/12(月) 23:23:32 ID:???
>828
無い
残念!

831 :827: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

これに加えるってどんな感じなんでしょうか?

832 :NAME IS NULL:2005/12/13(火) 00:06:51 ID:???
>>831
host all all 127.0.0.1 255.255.255.255 password passwd
だろ氏ね

833 :NAME IS NULL:2005/12/13(火) 00:38:22 ID:???
>>828
pg_resetxlogで過去に戻してdumpする荒業を耳にしたことがあるが……。

834 :NAME IS NULL:2005/12/13(火) 00:58:40 ID:tww26Ydt
>833

アリですか・・・!?

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

自分でDB作ってゴニョゴニョ試してみたら。


836 :NAME IS NULL:2005/12/13(火) 10:28:43 ID:61x5iL/O
pg_hba.confを変更した後ってpostgreの再起動だけでいいの?
PCの再起動してたけど・・・

837 :NAME IS NULL:2005/12/13(火) 11:42:25 ID:???
>>836
というか再読込だけで済む

$ pg_ctl reload

838 :NAME 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


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

このスレだけでも何度目だろう。

840 :NAME IS NULL:2005/12/13(火) 17:46:22 ID:???
>>838
locale=C

841 :NAME 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させるにはどのような操作をしたらよいでしょうか?

842 :NAME IS NULL:2005/12/14(水) 13:09:48 ID:???
>>841
shutdown -h now

843 :NAME IS NULL:2005/12/14(水) 19:18:10 ID:???
PgAdminIII Ver1.4.0 Windows版 SQL開こうとすると落ちる。
PgAdminIII Ver1,4,1 Windows版 改善されてる。
素早い対応ありがとう。中の外国の人。

日本語版サイトのリンク先が1.4.0のままなのは(・A・)イクナイ。
日本語版サイトの中の人も、中の外国の人を見習ってください。

844 :NAME IS NULL:2005/12/14(水) 21:08:47 ID:???
>>843
日本語版サイトの中の人に直接メールとかで訴える方が素早い対応だと思われます

845 :NAME 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を読んだりしたのですが、アンインストールの方法が
見つかりませんでした。


846 :NAME IS NULL:2005/12/15(木) 11:59:45 ID:cPGS0hyY
integerの配列(要素数は一定ではない)で、配列内の要素の合計値を簡単に得ることはできますか?自分で関数でも書くしかないのでしょうか?

847 :NAME IS NULL:2005/12/15(木) 15:09:13 ID:???
関数書けるなら関数でどうぞ、他に方法はありません
何よりも一般的にはRDBで配列使うようだと既に負けてるんじゃないかなって噂はない?

848 :846:2005/12/15(木) 16:06:30 ID:cPGS0hyY
>>847
とりあえずplpgsqlで関数書いて解決しました。

やっぱ配列使うと負けですかね?しかし、元になってるデータ(httpでテキストで取ってくる)の種類が数十個あって、それぞれの中に配列でデータが定義されてるんですよね。ものによっては3次元とか。とてもじゃないけど別テーブルになんてやってられんです。

849 :NAME IS NULL:2005/12/15(木) 16:09:17 ID:???
>>843
同じ1.4.0でも、pgAdminIII単体だと落ちるけど、
PostgreSQL8.1本体についてくるやつは落ちないんだよね。
同じバージョン番号のクセに・・・・

850 :NAME IS NULL:2005/12/15(木) 16:10:33 ID:???
>>848
>とてもじゃないけど別テーブルになんてやってられんです。

というところが負けなんです

851 :NAME IS NULL:2005/12/15(木) 16:45:12 ID:QEoAR/CH
配列使ったこと無い。
どういうところが便利なのかさっぱりわからん。

852 :NAME IS NULL:2005/12/15(木) 17:55:15 ID:???
>>851
ISAMファイルじゃねーんだから普通のシステムだと配列は確実に不便
速度的にも保守性的にもSQLで引くときに関数参照するようだと負けですわ

853 :NAME IS NULL:2005/12/15(木) 21:04:07 ID:QEoAR/CH
8.1なんですが、7.4のデータを定期的にdblink使って持ってきてます。
ところが、突然、
"could not open relation with OID 12336"
とか出てきて動かなくなりました?
何かご存じないでしょうか・・・



854 :853:2005/12/16(金) 10:12:13 ID:8XiqYooR
よくわかんないんだけど、データを退避させた後、テーブルを一旦dropして
再作成すると復活しました。
なんかシステムデータが壊れたのかな。。。

855 :NAME IS NULL:2005/12/16(金) 11:15:02 ID:???
書き込み中のデータを持ってきて中途半端だったんじゃないかな?

856 :NAME IS NULL:2005/12/16(金) 11:29:56 ID:PTCRuCH7
初心者ですいませんが、
date型のフィールドの比較がうまくできないのですが
WHERE hoge_date < 20040506
でhoge_dateフィールドが20040506以下である場合selectしたいのですがうまく動作しません。宜しくお願いします。

857 :NAME IS NULL:2005/12/16(金) 11:32:51 ID:???
WHERE hoge_date <= '2004-05-06'

とか?
'06May2004' とかも使えるけど

858 :NAME IS NULL:2005/12/16(金) 11:35:27 ID:???
'20040506' でも解釈するみたいだな。

859 :856:2005/12/16(金) 11:42:57 ID:PTCRuCH7
>>857
ハイフンとシングルコーテーションがなかったからか、正常に動作しています。
ありがとうございます。
ちなみにシングルコーテションがなくてもエラーにはならないのですが、
どういった意味でつけているのでしょうか?

860 :856:2005/12/16(金) 11:44:38 ID:PTCRuCH7
>>858
'20040506'でも正常に動作する事を確認しました。

861 :NAME 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

862 :NAME 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は新しいものになっている)

バージョンの確認で新しいものが表示されるようにするにはどのようにしたらよいですか?


863 :NAME IS NULL:2005/12/16(金) 15:00:17 ID:???
>>862
今実行している postmaster の場所は?
ps -ef|grep postmaster
とかで確認

864 :NAME IS NULL:2005/12/16(金) 15:01:29 ID:???
って、psql内でのバージョンチェックじゃなくて
psqlそのもののバージョンか・・・

which psql で、どのpsqlが起動するかチェック

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

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

あと、initdb はどっちのコマンドを使った?

866 :856: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できません。
もちろんダミーでデータは入れてあります。

867 :NAME IS NULL:2005/12/16(金) 17:39:36 ID:???
>>866


startより前でかつendより後なんて存在しないだろう

868 :NAME IS NULL:2005/12/16(金) 17:40:36 ID:???
逆じゃないのか?

869 :NAME IS NULL:2005/12/16(金) 17:42:43 ID:???
こういう書き方もある

WHERE 'today' BETWEEN hoge_start AND hoge_end

870 :856:2005/12/16(金) 18:05:01 ID:PTCRuCH7
>>867
>>868
あっ、ほんとだ逆でした。。。アホだ。
>>869
わかりやすい文法ですね、試してみます。


871 :NAME IS NULL:2005/12/16(金) 18:16:03 ID:???
>>866
>WHERE hoge_start >= 'today' AND hoge_end <= 'today'
穴が開くまでよーく眺めてみろ。

その上でbetween句を使え。

872 :NAME IS NULL:2005/12/16(金) 18:35:45 ID:???
>>871
時差?

873 :NAME IS NULL:2005/12/16(金) 18:58:58 ID:???
>>872
きっと気づくまで時間がかかったんだろ。
そっとしておいてやれ。
bitweenが句じゃないのも(ry

874 :NAME 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の設定などありましたらご教示ください。

875 :NAME IS NULL:2005/12/16(金) 20:15:16 ID:???
>>873
bitween (・∀・)ニヤニヤ

876 :873:2005/12/16(金) 21:00:19 ID:???
( ̄□ ̄;)!!

実際リアルでもたまにやってしまうんだコレ...orz

877 :NAME IS NULL:2005/12/17(土) 17:53:09 ID:8vIYQ3Me
ソースからインストールしたいのですが、
インストールするフォルダをあらかじめ指定し、パスを通す方法ってどうやるのですか?


878 :NAME IS NULL:2005/12/17(土) 18:42:58 ID:5ik2MU5K
>>877
PostgresSQLを一回も使ったことが無い俺が言うことだから当てにならんが・・・
普通に--prefix=/好きな場所/じゃあだめなの?

879 :877:2005/12/17(土) 19:10:42 ID:???
あ、すいません。なんか勘違いしてました。
普通に出来ました。

880 :NAME IS NULL:2005/12/18(日) 16:53:58 ID:AOIsB/qI
サーバーを再起動した時に、自動的にPosgreSQLが立ち上がり、DBを使えるようになるように設定するのってどうしたらいいですか?

881 :NAME IS NULL:2005/12/18(日) 17:07:42 ID:???
>>880
環境を言わんと教えてもらえんよ

882 :NAME IS NULL:2005/12/18(日) 17:30:17 ID:EmfZ6W7K
テーブルをCREATEする時、
既に同じテーブル名があるかどうか判断してから、
CREATEしたいのですが、
判断の方法がわかりません。
すいませんが、教えてもらえますでしょうか。

883 :880:2005/12/18(日) 17:44:28 ID:AOIsB/qI
MiracleLinuxです
サーバーを再起動した時に、自動的にPosgreSQLが立ち上がり、DBを使えるようになるように設定するのってどうしたらいいですか?

884 :NAME IS NULL:2005/12/18(日) 18:23:38 ID:???
MiracleLinuxはよくわからんがLinux系なら /etc/rc.d/init.d/ と services のオンオフ設定じゃないの?
READMEとかINSTALLとかその辺に載ってるはずだよ

885 :NAME IS NULL:2005/12/18(日) 18:40:44 ID:???
Linux系の起動スクリプトは
ソースディレクトリ/contrib/start-scripts/linux
にある。コレを/etc/rc.d/init.d/にリネームして入れて
起動するランレベルに合わせてごにょごにょすれば出来るんじゃね。
つーか、Miracleにバイナリパッケージは用意されて無いんかな?

886 :NAME IS NULL:2005/12/19(月) 14:51:26 ID:???
>>873
わかるなぁ。
漏れもしょっちゅう
WEHREとかCOUTNってやるんだ。。。

887 :NAME 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 という名前でリンクすればいい

888 :887:2005/12/19(月) 16:26:31 ID:???
つーか、postgresql-X.X.X/contrib/start-scripts/linux の先頭に書いてあるね、やりかた

889 :NAME IS NULL:2005/12/19(月) 18:46:32 ID:???
>>873
>>886
俺はよく全角スペース入れちゃったりしてますよhehehe('A`)

890 :NAME IS NULL:2005/12/19(月) 23:30:21 ID:???
>>889
マなら全角スペースはデフォルトでは日本語入力モードでもでないように
するもんじゃまいか?


891 :NAME IS NULL:2005/12/20(火) 00:46:28 ID:???
PostgreSQLは日本語を無難に扱えると噂では聞きますが、↓このような現象はPostgreSQLでは起こらないのでしょうか?
http://pc8.2ch.net/test/read.cgi/db/1133166614/293

892 :NAME 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文って作れますか?

わかる方、よろしくお願いします。


893 :NAME 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なのでしょうか?

長文での質問ですが、どなたかご教授お願い致します。

894 :NAME 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は一人のみ。

895 :NAME 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を振ってみれば。
もともとのループ処理でもそこそこ速くなるかも。

896 :NAME IS NULL:2005/12/20(火) 05:03:41 ID:???
>>895
ってことはまだTCP/IP接続ができていないんですね。
まだずっとやってたんですが、問題が分って希望が見えました!
ありがとうございました。頑張ってみます

897 :896:2005/12/20(火) 05:07:30 ID:???
あ、そういえば
#tcpip_socket = false

tcpip_socket = true
に書き換えろというのを度々目にしましたが、postgresql.confに
#tcpip_socket = false自体がないようです・・・。
Ctrl + Fで探してみましたが、やはりありませんでした。

898 :NAME IS NULL:2005/12/20(火) 05:11:15 ID:???
>>896
WinXPそのもののFirewall設定はどうなの?

>>897
それは7.x以前もの。

899 :896:2005/12/20(火) 05:19:49 ID:???
FirewallにPostgreSQLが追加されていなかったので追加しました。
しかし、変わりませんでした・・・残念

900 :NAME IS NULL:2005/12/20(火) 05:38:56 ID:???
>>899
すまん。java使いじゃないから、pg_hbaで蹴られた場合どういうメッセージを返すかしらんわ。

それと、Firewallを一時的に全てきってみてテストしてみるとか、
psqlコマンドでも接続できないのか試してみては如何か。

901 :896:2005/12/20(火) 05:54:16 ID:???
Firewall切ってみましたが変わらず・・・
いつの間にかpsqlも繋がらなくなってました・・・いつの間に


902 :896:2005/12/20(火) 08:49:38 ID:???
さすがにそろそろ寝ることにします
どうもありがとうございました

903 :NAME IS NULL:2005/12/20(火) 10:36:05 ID:???
psql でホスト無指定で環境変数も無いと localhost につなごうとするんだよ
listen_address を localhost か * 以外にしたら psql の -h 指定でそのアドレスいれなきゃ

pg_hba.conf は初期状態だと localhost だけだから、これも変更が必要
元に戻っているのなら、直接エクスプローラーで該当ファイルさがして
自分のエディタで編集してごらん。

904 :NAME 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の後ろに余分なカンマが付いていたみたいです。


905 :NAME IS NULL:2005/12/20(火) 23:15:03 ID:4flUIlEp
>>904
×筆頭
○世帯主
ってのはどう?

906 :NAME 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です。

907 :NAME IS NULL:2005/12/21(水) 10:47:08 ID:???
>>906
SQL文を文字列で生成して、EXECUTE 使ったらいけると思う

908 :NAME IS NULL:2005/12/21(水) 11:50:23 ID:???
>>907
テーブル名に変数が使えないということですね。
EXECUTE INTOで同じことが出来ました。
ありがとうございます。

909 :NAME IS NULL:2005/12/21(水) 16:04:33 ID:8BF8onPp
一度インストールして運用してたDBを別のDBにデータごとコピーしたいんですがどうすればいいでしょうか?
OS入れなおしたせいで、ソフトは入ってない状況になってます
ちなみにOSはwindows2kです

インストール→フォルダをコピー
とかでいけそうな気はするんですけど、誰か情報もってませんか

910 :NAME IS NULL:2005/12/21(水) 16:28:33 ID:???
インストールする前にdumpしなかったの?
dumpしてあるなら、
http://www.postgresql.jp/document/pg811doc/html/backup.html
これで、できると思うけど。


911 :NAME IS NULL:2005/12/21(水) 16:33:29 ID:???
dumpしてるときの方法は知ってたのですが
急にOSが落ちて入れなおす羽目になったんです・・・

912 :NAME IS NULL:2005/12/21(水) 16:35:44 ID:???
>>909
同じバージョンならコピーでOKだった

913 :909:2005/12/21(水) 16:51:32 ID:???
>>912
thx!!
どのフォルダ以下コピーすればいいですか?

914 :NAME IS NULL:2005/12/21(水) 17:04:40 ID:???
>>913
data
あと、インストールパスも同じにした

915 :NAME IS NULL:2005/12/21(水) 23:43:43 ID:???
今日postgresqlをやり始めたものです。
あのバージョン7.xxのlinuxのpostgresqlのデータを
バージョン8.1.0のWindowsのpostgresqlで使用したいのですが,
これってバージョンとかOSの違いとかぜんぜん気にせずに出来るのでしょうか?
エクスポートされているデータをレストアすればいいとか聞いたのですが、そういうやり方
でいいのでしょうか?



916 :NAME 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の件数を表示していると思うのですが、
なぜこうなるのかわかりません。

単純なミスだと思いますが、どなたか教えてください。

917 :916:2005/12/22(木) 07:00:00 ID:o1EzN8Bk
すんません。
ちなみに共にvarchar型で定義してます。

918 :NAME IS NULL:2005/12/22(木) 10:29:53 ID:???
>>915
基本的に、バージョンは 0.1 違うだけでそのままでは使えない
ましてや、OS違えばだめだしCPU違ってもダメ。
同じOSでも、32bitと64bitでもダメ。

pg_dumpall > filename
でできたファイルを、
psql template1 < filename
とやれば、全体コピーは可能
オプションは各自調べてちょうだい

919 :NAME IS NULL:2005/12/22(木) 10:33:43 ID:???
>>916
そのDBのEncoding は何かな?
あと、initdbしたとき、--no-locale つけたかい?

920 :916:2005/12/22(木) 10:50:50 ID:z5YQIXNM
encodingはEUC_JPです。
>あと、initdbしたとき、--no-locale つけたかい?
してるみたいです。


921 :NAME IS NULL:2005/12/22(木) 10:52:43 ID:???
>>920
んー、それだとその結果になる理由がわからんなあ
postgresql.conf の lc_messages = は 何になってる?

922 :NAME IS NULL:2005/12/22(木) 11:33:34 ID:???
>>916
そもそも、count(*) じゃなくて * で表示させるとどれが該当する?

923 :916:2005/12/22(木) 11:35:12 ID:z5YQIXNM
>921
'ja_JP.UTF-8'
でした。

924 :NAME IS NULL:2005/12/22(木) 11:54:20 ID:???
>>923
Cじゃないのね・・・
念のため --no-locale で作り直してみては?

925 :916: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だとダメでした。

926 :NAME IS NULL:2005/12/22(木) 14:24:28 ID:???
>>925
だからさ、>>923 が 'C' になってないってことは
>>920
>してるみたいです。

ってのは間違ってる可能性が高い。
なので、もっかいinitdb しなおせ

927 :NAME IS NULL:2005/12/26(月) 19:05:30 ID:eTqjW5sU
リリース毎の変更点概要が載っているページってないですかね?
7.4.7を使っていて、7.4.10にあげようか迷ってるんですが

928 :NAME IS NULL:2005/12/26(月) 20:40:30 ID:???
>>927
ttp://www.postgresql.org/docs/7.4/static/release.html

929 :915:2005/12/27(火) 01:07:20 ID:???
遅くなりましたがレスサンクス。
なんとかできました。

今度はpostgresqlから得られた値の末尾にaがついて表示されるように
なりました。面白いんですがなんか大変。

930 :NAME IS NULL:2005/12/27(火) 06:07:35 ID:???
a?
Aの反転なら改行コードだろうけどなあ・・・

931 :915:2005/12/27(火) 09:14:13 ID:???
つかなかったりついていたりするんですが.
末尾にAがちょこんとついています。

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

>929は>918へのレスです。失礼

932 :915:2005/12/27(火) 12:05:28 ID:???
ハヤトチリでした。
もともとデータにAってついていました。逝ってきます。

933 :NAME IS NULL:2006/01/01(日) 08:38:19 ID:FcJooSY7
あるユーザに対して、全てのデータベースへのあらゆる権限を剥奪するにはどうしたらいいですか?
最終的には、そのユーザには一つのデータベースだけを扱えるようにしたいです。

934 :NAME IS NULL:2006/01/01(日) 22:14:00 ID:???
>>933
コマンドで権限設定したら?
全部剥奪なら、削除したらいいと思うが

935 :NAME 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
 跫跫諱@     匸(´∀`;)フ   (,゚Д゚,). o |=宗=! o |  ( `ー´) ヮ    (゚ー゚*) 跫跫
  |l|lil|ili|        瓜ゞッ=Lく   ,くリ=ッ=[ゝ.__」「「「「L_.」  厂〉=ッ冂づ ヌ Oヮ⊂[]ヨ  |l|lil|ili|
,,.<卅卅ゝ.__.,.,.,___.__.,.,.,(__)ヾZ)'_.,.,_じ(ノルハ)Jつ」」」」」⊂ソ.,_.,_.(入ム]つつ.__,L!__. (_」つ.,<卅卅ゝ,,.,,

〜ラッキーレス〜
2006年新年あけましておめでとうございます!
さて、このレスを見た人は、コピペでも良いので26分以内に3つ以上のスレに貼り付けてください
そうすれば今年中に、体の悪いところは全て治るわ好きな人に告白されるわ出世するわで大変なことです!!


936 :NAME IS NULL:2006/01/05(木) 12:28:57 ID:0vbt5GF+
スルーしないで教えてください。

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

ヘルプで調べると、

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

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


でるのですが、意味がわかりません。
やさしい人、教えてください。

937 :NAME IS NULL:2006/01/05(木) 14:15:32 ID:???
ヒント: ぬるぽ

938 :935:2006/01/05(木) 14:31:29 ID:0vbt5GF+
なんとなく意味がわかったのですが、
設定がODBCのどこをみてもわかりません。
一通り、チェックを入れたりしてみてみたんですが。。。

939 :NAME IS NULL:2006/01/05(木) 15:44:19 ID:???
>>938
すれ違い気味だけど・・・ODBC設定するところからの
接続テストは成功すんの?

940 :NAME IS NULL:2006/01/05(木) 16:58:09 ID:???
お約束だが・・・
ODBCドライバのバージョンとPostgreSQLのバージョン

941 :NAME IS NULL:2006/01/07(土) 07:00:57 ID:???
8.1.2は何が変わったの?
どこ見ればわかるかな?
できれば日本語で。

942 :NAME IS NULL:2006/01/07(土) 10:58:00 ID:???
8.1.2
* Windows版のDoS耐性を向上
* コミット直後のデータが失われるバグの修正(8.0以降に存在していた)
* 幾つかの マルチバイト文字列に関するバグ修正
* 幾つかの COPY CSV に関するバグ修正
など。

943 :NAME IS NULL:2006/01/07(土) 14:48:33 ID:???
>>942
二つ目のって発生する確率は高いのかな?

944 :NAME 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

自動削除指定のテンポラリテーブルを使っていて発生したようだ。
それ以外の状況で発生するのかよくわからん。リンク先を読んでくれ。

945 :NAME IS NULL:2006/01/07(土) 15:46:15 ID:???
>>943
942 じゃないけど、ML や Web を見る限り低確率かと。

946 :NAME IS NULL:2006/01/07(土) 16:03:05 ID:???
>>944
>>945
dクス

947 :NAME IS NULL:2006/01/07(土) 20:23:04 ID:???
うーん、、、8.1.1で検証中だったが8.1.2に切り替えるか・・
間に合うかなあ

948 :NAME IS NULL:2006/01/09(月) 18:48:06 ID:vvjz6A3Z
8.1.2確認した。
最近バージョンアップ早いな・・

949 :sage:2006/01/09(月) 19:06:49 ID:vvjz6A3Z
しまった。下げ忘れた・・スマソ


950 :sage:2006/01/09(月) 19:14:08 ID:???
しかも下げ間違えた・・・orz

950取ってしまったので次スレ作ろうと思うのだが
タイトルとかそのまんまでいいですか

951 :NAME IS NULL:2006/01/09(月) 19:26:07 ID:???
>>950
よろ乙

952 :NAME IS NULL:2006/01/09(月) 19:28:44 ID:???
間違い直す?
PostgresSQLについて語ろう

PostgreSQLについて語ろう

953 :NAME IS NULL:2006/01/09(月) 19:56:53 ID:???
このさい一個づつ増やしていくって方向で
PostgressSQL

954 :NAME IS NULL:2006/01/09(月) 20:04:56 ID:???
>>953
さんせい!!

955 :NAME IS NULL:2006/01/09(月) 20:11:08 ID:???
>>953
賛成
Googleみたいだな

956 :NAME IS NULL:2006/01/09(月) 20:21:49 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1136805513/

>>953-955
それ実装する前に立ててしまったorzスマソ

957 :NAME IS NULL:2006/01/09(月) 20:38:11 ID:???
>>956
乙。あれはあれで粋なスレタイだと思うよ。

958 :NAME IS NULL:2006/01/09(月) 23:43:18 ID:4OUD+loB
PHP:4.4.1
PostgreSQL:8.1.0

プログラム内でトランザクションによる
複数のテーブルに対しdeleteコマンドを発行し
削除後にテーブルデータを表示するようにしていますが、
たまに、削除が追いつかないのか、キャッシュの様に、
削除したはずのデータが画面上に表示されます。
再読み込みをしなおすと、削除したデータは表示されないのですが
delete文を複数発行後は、削除ができたかどうか、
監視した方が良いのでしょうか。


959 :NAME IS NULL:2006/01/09(月) 23:56:31 ID:???
>>958
データベースの使い方わかってる?
deleteをcommitすれば、確実に削除されていることが保証される。

960 :NAME IS NULL:2006/01/10(火) 00:39:44 ID:???
>データベースの使い方わかってる?
>deleteをcommitすれば、確実に削除されていることが保証される。
はい、commitは行っています。確実に削除はされることはわかっているのですが、
削除済みデータのあるテーブルをcommit直後に見に行くと(PHPでselectし画面表示)、
削除したはずのデータが表示されることがあるのです。
こういう状態がありえないのなら、クライアント側のキャッシュなのですが・・・。


961 :NAME IS NULL:2006/01/10(火) 16:26:02 ID:/3HNQj9a
>>960
「再読み込みをしなおす」だけでデータが正常になるんであれば
クライアントのキャッシュだと思うけど

962 :sage:2006/01/10(火) 16:26:38 ID:???
ksk

963 :NAME IS NULL:2006/01/10(火) 16:26:46 ID:/3HNQj9a
ksk

964 :NAME IS NULL:2006/01/10(火) 16:26:59 ID:/3HNQj9a
ksk

965 :NAME IS NULL:2006/01/10(火) 16:27:15 ID:/3HNQj9a
ksk

966 :NAME IS NULL:2006/01/10(火) 16:27:29 ID:/3HNQj9a
ksk

967 :NAME IS NULL:2006/01/10(火) 16:27:45 ID:/3HNQj9a
ksk

968 :NAME IS NULL:2006/01/10(火) 16:27:58 ID:/3HNQj9a
ksk

969 :NAME IS NULL:2006/01/10(火) 16:28:50 ID:/3HNQj9a
ksk

970 :NAME IS NULL:2006/01/10(火) 16:28:59 ID:/3HNQj9a
ksk

971 :NAME IS NULL:2006/01/10(火) 16:29:07 ID:/3HNQj9a
ksk

972 :NAME IS NULL:2006/01/10(火) 16:29:15 ID:/3HNQj9a
ksk

973 :NAME IS NULL:2006/01/10(火) 16:29:21 ID:/3HNQj9a
ksk

974 :NAME IS NULL:2006/01/10(火) 16:29:27 ID:/3HNQj9a
ksk

975 :NAME IS NULL:2006/01/10(火) 16:29:33 ID:/3HNQj9a
ksk

976 :NAME IS NULL:2006/01/10(火) 16:29:40 ID:/3HNQj9a
ksk

977 :NAME IS NULL:2006/01/10(火) 16:29:46 ID:/3HNQj9a
ksk

978 :NAME IS NULL:2006/01/10(火) 16:29:51 ID:/3HNQj9a
ksk

979 :NAME IS NULL:2006/01/10(火) 16:30:01 ID:/3HNQj9a
ksk

980 :NAME IS NULL:2006/01/10(火) 16:30:09 ID:/3HNQj9a
ksk

981 :NAME IS NULL:2006/01/10(火) 16:30:16 ID:/3HNQj9a
ksk

982 :NAME IS NULL:2006/01/10(火) 16:30:24 ID:/3HNQj9a
ksk

983 :NAME IS NULL:2006/01/10(火) 16:30:34 ID:/3HNQj9a
ksk

984 :NAME IS NULL:2006/01/10(火) 16:30:41 ID:/3HNQj9a
ksk

985 :NAME IS NULL:2006/01/10(火) 16:30:51 ID:/3HNQj9a
ksk

986 :NAME IS NULL:2006/01/10(火) 16:30:58 ID:/3HNQj9a
ksk

987 :NAME IS NULL:2006/01/10(火) 16:31:14 ID:/3HNQj9a
ksk

988 :NAME IS NULL:2006/01/10(火) 16:31:21 ID:/3HNQj9a
ksk

989 :NAME IS NULL:2006/01/10(火) 16:31:32 ID:/3HNQj9a
ksk

990 :NAME IS NULL:2006/01/10(火) 16:33:14 ID:/3HNQj9a
ksk

991 :NAME IS NULL:2006/01/10(火) 18:29:50 ID:/3HNQj9a
ksk

992 :NAME IS NULL:2006/01/10(火) 18:29:58 ID:/3HNQj9a
ksk

993 :NAME IS NULL:2006/01/10(火) 18:30:05 ID:/3HNQj9a
ksk

994 :NAME IS NULL:2006/01/10(火) 18:30:12 ID:/3HNQj9a
ksk

995 :NAME IS NULL:2006/01/10(火) 18:30:18 ID:/3HNQj9a
ksk

996 :NAME IS NULL:2006/01/10(火) 18:30:25 ID:/3HNQj9a
ksk

997 :NAME IS NULL:2006/01/10(火) 18:30:32 ID:/3HNQj9a
ksk

998 :NAME IS NULL:2006/01/10(火) 18:30:45 ID:/3HNQj9a
ksk

999 :NAME IS NULL:2006/01/10(火) 18:30:53 ID:/3HNQj9a
ksk

1000 :896:2006/01/10(火) 18:35:17 ID:???
遂に動きました・・・1ヶ月・・・若干さぼってた時もありましたが
変更内容は
@pg_hba.confに新規に
データ型local データベースall ユーザpostgres 方法trust
という内容で追加

ここでjava.sql.SQLException: ERROR: relation "member" does not existというエラーが発生
memberはテーブルの名前です
A環境変数の CLASSPATH に WEB-INF 下の classes までのパスを追加
で表示できました

以前にスタートメニューからpg_hba.confを起動した場合、
何度編集して保存しても、再度開いた場合、表示が元に戻っているといことをお聞きしましたが、
どうやらpg_hba.conf内に追加した内容よりも範囲の大きい設定がある為に消えていたみたいです。

どうやら基本的なことですが、同じ基本で悩む人へ・・・
調べまくっても出てこなかったので、よっぽど基本だったんでしょうね

色々教えて下さった方々、本当にありがとうございました

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

260 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)