1 :
名無しさん@お腹いっぱい。 :
03/07/01 02:05 ID:y7yXGqKh とりあえず6.5の話題から
くりりん
3 :
名無しさん@お腹いっぱい。 :03/07/01 02:05 ID:ZbaQ/VYo
OK!語ろうぜ
∧_∧ ( ´・ω・) みなさん、お茶が入りましたよ・・・・。 ( つ旦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 結果宜しく
>>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 で す が
V2の光の翼が・・・
11 :
名無しさん@お腹いっぱい。 :03/07/05 16:55 ID:UA46nXv6
素直に7.3使っとけ
12 :
名無しさん@お腹いっぱい。 :03/07/06 00:47 ID:PgmGixoi
「PostgreSQL」って「ぽすとぐれえすきゅーえる」って読んで良いんだよな?
少し前に、「カードキャプターさくら」という、NHKで放映された マンガが流行っていました。うちの息子(36歳、無職)も、「さくら たんハァハァ」と一生懸命見ています。だいぶ前に終わったのに、 ビデオ屋などに行くと、根強い人気を持っているとのこと。 さて、「さくら」という名前を女の子に付ける親が、ここのところ急 増したと、先日の「朝日新聞」に書いてありました。今の若い人は知 らないと思いますが、桜は戦争=軍国主義のシンボルでした。アジア の人々の心をあざ笑うかのように、最近の靖国公式参拝を公言し、異 を唱える市民を「頭のおかしい人」と冷笑するタカ派の小泉首相の異 常な人気を考えると、さもありなんという気がします。 このマンガは、主人公の女の子がいきなり「あんたはカードキャプ ターや!」と有無を言わさず言われて、戦わされます。私はふと、か つて若者が「赤紙」1枚で無理やり兵隊に取られた過去を思い出しま した。そんな時代はもういやです。スタッフの皆さんには、戦争で亡 くなった方はいないのでしょうか。平和を愛する人間らしい気持ちは ないのですか!なによりも平和が一番です! また、「愛がなくなるなんて悲しすぎるよ」と言って、悪役と戦う シーンがありますが、侵略戦争はいつも「お国のため」といったきれ い事のもとに行なわれるのです。このマンガが、軍国主義を扇動して いる危険なマンガに見えるのは、私だけでしょうか。 NHKは不偏不党と言うのは、真っ赤なうそだと、本多勝一さんも書 いておられます。実際には、世界に誇る平和憲法をないがしろにする、 危険なマンガを垂れ流しているのです。 私には、NHKをつけると映ってくる、この小さな女の子の「は にゃーん」という声が、若者を戦争へと駆り立てる軍靴の足音に聞こ えてなりません。カードキャプターならぬ、赤紙キャプター「同期の 桜」の時代はもうたくさんです!
7.2->7.3のバージョンageはマイナーじゃないと思う今日この頃。
あぼーん
18 :
名無しさん@お腹いっぱい。 :03/07/25 07:38 ID:IGI7X7oh
ああそうかぁだからユーザの名前って postgresなのね、納得 ところでLinuxで使っているんですが 検索結果をいっぺんに吐き出して欲しいのですが 可能でしょうか? わざわざ「続ける」って表示されると 結果の表がずれるんです特にカラム多いやつだと分けわかんなくなります
あぼーん
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
21 :
名無しさん@お腹いっぱい。 :03/08/06 17:18 ID:Ft9W4vTV
正直PostgreSQLのWindows版を待ち続けています。
何使ってるのかわからんけど、PAGER外すとか、\oでいったんファイルに出力するとか
26 :
名無しさん@お腹いっぱい。 :03/08/11 22:08 ID:dEMRgf58
7.2は?
あぼーん
シェルで、setenv だのexportだの使って、PAGER=/bin/cat にでもしとけば 止まらないよ。止めたくなったらmore だの less だのに戻せばいい
補足 sh,bash,zsh → export PAGER=/bin/cat csh,zsh → setenv PAGER /bin/cat (zshはどっちも通じる、sh系はsql 起動時に PAGER=bin/cat psql でもよい、csh系は知らん)
ミスった PAGER=bin/cat psql → PAGER=/bin/cat psql
たびたびスマン \? で見てみたら、\pset pager つーのがあるじゃん \pset pager off で止まらなくなり、on で止まるようになる
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⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
マルー
38 :
名無しさん@お腹いっぱい。 :03/09/19 16:52 ID:fWekkCqX
(,,゚Д゚)∩先生質問です ポスグレって何万件ぐらいまでちゃんと扱えるんだろう。 百万件? 一千万件? 件数かかわらず1.5TBのデータってあつかえるんだろうか?
>>38 FAQにはこう書いてあった。
データベースの最大サイズ? 制限無し (4 TB のデータベースも存在します)
テーブルの最大サイズ? 16TB
ロウの最大サイズ? 1.6TB
フィールドの最大サイズ? 1GB
テーブル内での最大ロウ数? 制限無し
テーブル内での最大カラム数? カラムの型により250-1600
テーブル内での最大インデクス数? 制限無し
>>38 どっかで一千万件実現したっつー記事があったような。
それなりに工夫しなきゃならんらしいけど。
数十万件は楽勝だった。
それ以上は組んでないからわからない。
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
age
46 :
NAME IS NULL :05/01/18 01:02:50 ID:ENnelzsU
もうすぐリリースですか?
47 :
◆CuBRA.266. :05/01/19 17:28:43 ID:nUcKEwnv
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ではどのような質問になりますか。 実際はもう少し複雑な質問ですが、わからないのは射影の部分だけなので 単純化しました。
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のドライバでしょうか?タイムスタンプが 古いんで、最新版とか他の奴が作った何かがあったりするのでしょうか?
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 うは、ポストグレスキューエルか。おっちょこちょいな正確なのでね^^;
thx
8のODBCまわりを試したけど、APSからも問題なく接続できて一安心。
MySQLはこれがどうもうまくいかんかった。多分私の設定の仕方が悪
かったのだろうけどね。
UIは、ちょっと試しただけだけど、細かい部分で不具合がちらほら。
でも、データベースの基本部分は問題なく操作できそうだったから、
特に問題なし。
実際の処理は、まだ実際にためしていないので、わかりません。
以上8を使った感じのレポートでした。
ぽすぐれっていうとキモイのかよ 5年ぐらいそう呼んでたyo
58 :
NAME IS NULL :05/01/24 01:45:41 ID:v1IxMEsA
>>56 UIってpgAdminのことか。
もともとLinux使いならpsqlの方がいいぞ。
その他createdb,dropdb,vacuumdb,pg_dumpとか
\binにつまってる。
>>59 ほほう。そうなんですか。
まだ、いじり始めたばかりなのでよくわかってないのです。
へたれWindows使いなのですが、該当フォルダがあるみ
たいなので、いろいろ見てます。
thx
>59 pgAdminUをインストールしたのですが、起動できません。 『highlightbox.ocxからコントロール'HBX 'をロードできませんでした・・・』 OCXのバージョンが最新でないとのことですが、 OCXはどこからか入手できるのでしょうか? ちなみにSP5のコントロールはインストール済みで、 環境は、WindowsXP Homeです。
>>61 つか、Postgres8.0同梱のpgAdminはVだぞ。
単体で入れたのか?
Postgres8.0のインストーラーから入れてみて。
だめならPostgres8.0ごとアンインストールの上
再インストールで。
>62 pgAdminについて勘違いしていたようです。 Windows版Postgre専用の管理ツールということでしょうか? FreeBSDで起動しているPostgreに、 Accessのデータをエクスポートしたかったのですが、 pgAdminは使えませんね?
pgAdminでテーブル作って、ODBC経由でACCESS直繋ぎして、データコピー汁。
>>63 そう、pgAdminは管理ツール。
Acceessデータを入れるんなら
>>64 でいいっしょ。
件数大杉でだめならタブ区切りのテキスト作って
psqlで流し込むとか。
ファイルの中身は標準入力からのCOPYコマンド辺りを
調べれ。
すいません、質問させてください。 バージョン7.0使ってるんですが、SQLにデータ放り込む時に空欄にして おきたいところは何で区切ったらよいのでしょうか?
>>66 これは・・・どういう意味だろ?
「区切ったら」って
>>65 の流れで、COPYコマンドの場合?
なら「\N」だ。
参考として、一回pg_dumpで吐き出して中身みてくれ。
>67 空欄、というのは「NULL」にしておきたいってことです。 DBに放り込むときに、どの文字列が「NULL」として扱われるのか知りたいです。 お願いします。
>68 どうやって放り込むか言わないと答え辛いよ
>69 そうですね、すいません。 タブ区切りにしたファイルをあらかじめ作成したテーブルに \copyで入れる時です。
\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 宜しくお願いします。
迷わず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は最後の手段にしようかと考えています。
linux入れて8使えばいいのに
coLinux だな。
78 :
NAME IS NULL :05/02/13 23:35:01 ID:/2q5+wOU
他のスレでも聞いたんだけど postgreに画像を登録する事は可能? もしできるなら型はどうすればいいの?
byteaだったかな
80 :
78 :05/02/15 00:13:42 ID:???
ありがと〜 試してみま〜す
libpqをSSL対応にしてVCでDLL作るにはどうしたらいいの?
>>81 1.VCでDLLプロジェクトを新規作成
2.本家からlibpqのソースをとってきてSSL対応に改造
3.VCでビルド
正味1時間もかからないよ。
>>82 >2.本家からlibpqのソースをとってきてSSL対応に改造
ここの所、詳しくキボンヌщ(゚д゚щ)カモーン
84 :
81 :05/02/18 04:56:01 ID:???
今はソースをnmakeとwin32.makを使ってコンパイルしようとしてる。 SSL非対応のものなら簡単にできるんだけど、結局SSLに対応させる方法がよくわからない。 というわけで щ(゚д゚щ)カモーン
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らしいプログラムが見当たりませんでした。 どうかご教授よろしくお願いします。
コントロールパネルの管理ツール-サービスより「PostgreSQL Database Server 8.0」を選択し、 スタートアップを「手動」に設定。ついでに[停止]押してサービスを止めとけ。
webminとの相性はどうなのだろうか、、、 pg_ctlでの起動が失敗する。。。
91 :
88 :05/02/21 18:23:02 ID:???
>89さん できました。 他の分野でも応用が利きそうな、 大変ためになるアドバイスありがとうございました。
SELECT文で 田中 をキーに 中田 中山田 田無羅中 をヒットさせたいと思ってるのですが (キーの文字を含む(順不同)レコードをヒットさせたい) この場合 LIKE '%田%' and LIKE '%中%' ..... とするしかないのでしょうか? どこかのページで LIKE "*[田中]*" とすると、田、中の文字を含むレコードがヒットするというのを見たのですが "だし 実験してもエラーになるし、、
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 あ、だめじゃん。 自レス。
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を生成する辺で止まってしまいます。 どなたか解決方法をご存知の方いらしたら教えて下さい。
マジでだるい、webminからpostgresql8.0.1を起動させようとすると 起動するときと起動しねーときがある。だるぃ
ちょっと質問なんですが、アーカイブログってどんな利点があるんですか。 RAIDにすればいいやん、ってな気がするのですけど。
101 :
92 :05/02/23 11:12:26 ID:???
>>93 どうもありがとうございました。
やりたいことが書いてありました。
>>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 にしたらおこられませんでした。 ほんとにいいのかなこれで(汗
PostgresSQL8 をwinXPにいれたのですが、 ODBCの設定をしてACCESSからリンクしたいのですが どのファイルの設定を変更すればよろしいでしょうか?
>>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ずなのですが。 ただ、一回ポスグレをインストールしてからアンインストールしました
corrupted installation
111 :
109 :05/02/25 20:09:05 ID:???
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
7.4.7が出たよ
114 :
109 :05/02/25 23:00:28 ID:???
すんません、pgsql userをけしてからやりなおしたら、うまくいきました
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してないのが原因でした ども
>>115 Oracleとかでは出来るみたいですね。
浅学な者で、降順にインデックスを作成する局面ってのがよく分からなかったり。
どんな時に使うんでしょうか?
>>118 オプション名忘れたけど、Oracleのはこういう場合では。
シーケンスで取得した連番号などをインデックス指定した場合、
リーフブロックが固まってしまう。→I/Oが集中する。
正確には降順ではなく、「123」→「321」、「124」→「421」と値を
変換して、収まるリーフをばらつくようにする。だったような。
なるほど。 それなら変換関数をストアドプロシージャとして定義して、それ使った関数インデックスを作成すれば代わりになるかも。
調べた。逆キー索引って呼ぶらしいね。
CREATE INDEX index_name ON table_name (columns_name, ...) REVERSE;
ただこれば
>>115 の求めている内容かどうかは不明。
>>115 ですが、作りたいのは逆キー索引ではなくて
↓こんな風に特定の列だけを降順指定したいなあと
CREATE INDEX index_name ON table_name(col1 asc, col2 desc);
演算子クラスを使えばできそうな気がしなくもないけど難しくてよくわからない…
んで、降順指定できなくて期待する実行計画が 得られなかったということか? どんなふうになったのかexplainの結果晒してみそ。
124 :
NAME IS NULL :2005/03/24(木) 10:48:54 ID:zSQgHi4H
こんにちは。質問があります。 datetime型の列に以下のように時分秒まで値が入っています。 2005-03-23 20:56:10.274312 これを日付の部分のみ取得したりするということはできるのですか? フォーマット関数と言うのを使えばよいのですか?
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で「年月日」の型にキャストできる
>>124 timestamp型から日付のみの文字列を取り出すならto_charでフォーマットして取り出すと楽。
ちなみにこんな感じな 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 〜 とすると失敗します。
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の作成ができません。 具体的にどうすればよいのでしょうか??
春だねえ( ´ー`)y-~~
137 :
NAME IS NULL :2005/04/04(月) 04:32:41 ID:KM5oPHdv
ユーザpostgresがいない。 インストールマニュアル読み直してごらん。 どこかでユーザを作っているはずだから。
postmasterが上がっていないに一票。
140 :
NAME IS NULL :2005/04/04(月) 15:51:36 ID:DPyic2ET
suse9.1へのpostgresqlのインストール方法が解説してあるページを教えてください
apt-get install postgresql
>>134 OOoの2はどうよ?
ちゃんと使ってないからどこまで使えるか分からんが
143 :
NAME IS NULL :2005/04/06(水) 06:17:03 ID:8SoC8hGb
configureで--enable-multibyteを指定しなかった場合、マルチバイト文字を使うとどうなりますか?
(´・ω・`) < 知らんがな
Apache+PHP+MySQLか Apache+PHP+ポストグレの組み合わせは、どちらがお勧めですか? 初心者で、これから勉強するつもりです。 Cはわかります。
用途による
確か、MySQLはGPLじゃないライセンスが有料だったっけな。
SQLの一般的な知識ならpostgres 単に自分のサイトとかで使いたいだけならmySQL
149 :
NAME IS NULL :2005/04/11(月) 10:01:26 ID:C+Gsfi3e
どこのサーバからでもパスワードさえ合ってたら接続できるようにと pg_hda.confに以下のように書いたら起動できませんでした。 ------------ host all all password ------------ どう書くのが適切なのでしょうか? #MD5を使えとか、セキュリティがやばいとかは少しはわかってるつもりです #テスト用なのであらされても困らないので適当設定にしてます
良く調べもせずカキコ hostの場合はIPアドレスとネットマスクを省略できないんじゃないの? host all all 0.0.0.0. 0.0.0.0 password でどうよ
えぇけっしとるのぉ(*´Д`)ハァハァ うはっwwwおkwwwうえっwww??
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
テーブル定義を表示させるにはどうしたらいいでしょう。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などと小文字に なってしまうのですが、これを定義時の通りに してくれるにはどうすればよいでしょうか。
>二重引用符で囲む。 ありがとうございます。二重引用符で囲むというのは 何を二重引用符で囲めばよいのでしょうか。 としてみましたが、当然エラーになりました。。。 SELECT "Employee" FROM Company;
>>159 テーブルを作る時に囲んどかないといけないのでは、、、
COPYでインポートするファイルに、全角日本語文字を使ってる フィールドがあると、それ以降のカラムが認識されず エラーになるようなのですが、これは仕方ないのでしょうか?
>>160 ありがとうございます。
CREATE TABLE "Company"
(
"EmployeeID" int
);
のようにして大文字化出来ましたが、
Selectするときも
SELECT "EmployeeID" FROM "Company"
などとしなければいけないようです。暗黙的に
大文字、小文字を区別できるような方法は
ないでしょうか?
ワクワク
ISNULL(select max(id),0)というような記述は Postgreでも同様に使えるのでしょうか?
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)だとエラーになりますよ
できる 使い方を間違っている Google しろ
postgresqlをインストールするのに最新の 8.0.2 か、 Linuxディストリビューションに入っている 7.3.8 だと どちらがオススメですか?
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で記述するにはなんて書けばいいか知ってる人がいれば教えてください。
>>171 TextAsLongVarchar=1かな?
間違ってたらごめん。
173 :
NAME IS NULL :2005/04/23(土) 19:46:53 ID:6Z+WB6dZ
>>173 どうもその名前ではだめみたいなんですよね。
たしかにレジストリではその名前なんですが・・・。
何か間違ってるんでしょうか・・・。
postgresの配列型にインデックスってつけられる? 各要素の組み合わせとかじゃなく、各要素一つ一つに。 つまりある要素を持つレコードを全て検索する、というような時に使われるインデックスを作れるのかどうか。
175 :
NAME IS NULL :2005/04/26(火) 18:43:31 ID:FK8gAUqb
PostgreSQLのoidってバックアップ・リストアとかしても 不変ですか?
質問です PostgreSQL7系を使っているのですが サーバ1とサーバ2で同じテーブルがあって 一定時間でサーバ1から2へデータを同期したいと 考えています バックアップとリストアはpg_dumpでできそうなんですが こいつでリストアしてる際はSELECT文などのリクエストはどうなるのかなぁ とまる?
>>176 PGSQLの初心者だけど、
pgpoolのレプリケーションモードじゃだめなの?
>>176 試してみればいいじゃん。簡単にできるだろ。
いやだ
そんなこと言わずにお願いしますよ〜
181 :
NAME IS NULL :2005/05/02(月) 08:52:21 ID:e8FSHM9H
noviceな質問ですいません データベースのownerを変えるには、どうすれば良いですか? postgresが所有者になっているデータベースの所有者を、userXXに変更したいのですが。 おながいします。
>>181 DBそのものは、pg_database を直接変更して
ここのテーブルはALTER を使うんじゃだめかなあ
183 :
NAME IS NULL :2005/05/03(火) 23:27:18 ID:ZT796BS9
Fedora Core 3に8.0.2インストールしようとしたらConfgureでエラーでるな。
でる?
185 :
NAME IS NULL :2005/05/05(木) 12:40:39 ID:Wd3CnKjG
Fedora Core 3 に 8.0.2 をインストールする時、 ソースコンパイルしていれるのと、rpmで入れるのとだと どういう違いがでるのですか?
オプションが同じなら同じでしょう 特に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 どうもありがとう。
190 :
NAME IS NULL :2005/05/09(月) 12:29:10 ID:ue5bdXYS
>>186 ん?
readlineをwithout指定してもだめなの?
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
普通にCREATE DATABASEできないの? 権限が無いとか?
JDBC経由でってことでは
psqlの存在を知らないとか。
197 :
NAME IS NULL :2005/05/11(水) 18:22:38 ID:8/Q3W4Vp
JDBC経由ではわからなかったので、batファイルとかで できないものかとやってみたんですが createdb -U postgres test とやるとパスワードを求めてこられるので自動化できませんでした。 っていうかこの辺りのコマンドライン操作にも詳しくありません。 ググっても調べられず。ヘタレですみませんorz
199 :
NAME IS NULL :2005/05/11(水) 18:30:09 ID:8/Q3W4Vp
パスワードって-Wですよね? createdb -U postgres -W password test ってやると何故か無視してパスワード要求が来るんですが。 何か間違ってるんでしょうか。
-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 色々試してみたいんですが…。 教えていただいたのにすみません。 マジ申し訳ないです。自分の能力の無さを痛感しました。
>>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
>>206 第一引数にサブクエリで渡す
connectby('(SELECT * FROM Table WHERE key0=100)',.....
208 :
NAME IS NULL :2005/05/12(木) 20:38:53 ID:4laAhzfd
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 型のカラムを後から追加する方法にはどうしたらいいでしょうか?
>>210 ALTER TABLE Table ADD COLUMN newfield SERIAL;
>>211 やってみたら、エラーが出て追加できませんでした
>adding columns with defaults is not implemented
とのこと
>>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型なだけ。
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値を入れることは可能でしょうか。
NOT NULL の設定が無ければ可能
ここで聞くより自分で試したほうが早くね?
それは言わないのが華。 DBに限らずプログラミングもそうだけど、 理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。 ある意味少なくとも日本人エンジニアはその辺、資源を使うという事に臆病だよ。
>理論的にありえなくとも実環境で試して不具合が・・・と考えるとどうもね。 それって実環境で試してみる以外に確認しようがないよなぁ
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 のパスワードを聞かれます。全くパスワードが思い 出せません。すみませんがアドバイスをお願いします。
他に管理者権限のユーザー作ってないの?
223 :
221 :2005/05/16(月) 14:07:35 ID:j344hoIJ
作ってませんでした。というか postgres にパスワード設定 したこと事態覚えてません・・・。
つーか、いったん pg_hba.conf 書き換えて trust にして 修正ってできなかったっけ
225 :
221 :2005/05/16(月) 14:12:44 ID:j344hoIJ
今 trust になってますが、それでも何するにもパスワードを聞かれます。 具体的な修正方法をご伝授願いますか?
なんか必死だから、 ちょっと、じらしプレーをしたくなってきた。
227 :
221 :2005/05/16(月) 14:19:11 ID:j344hoIJ
じらされるのはあまり得意ではありません。 プリーズ。
ほんとにtrustなの? pg_ctl reload とか再起動してみた?
229 :
221 :2005/05/16(月) 14:30:52 ID:j344hoIJ
本当にtrustです。が、pg_ctl reload で postmaster.pid がない と言われました。正常に動いてない? なので現在再インストール中。 その後再起動してみます。アドバイスありがとうございます。
再インストールって、、、データ空でユーザーもいなかったのか・・・
231 :
221 :2005/05/16(月) 14:37:01 ID:j344hoIJ
いないです。でも今日中にユーザ登録管理システム作らなくちゃいけなくて そんな時にこのパスワード問題なんで悲しいです。前に進めん。
>>231 なんか君はだめ人間に匂いがするよ。
まあ、がんばって。
linuxとかで、2箇所にインストールされてたりしないか
234 :
221 :2005/05/16(月) 14:45:39 ID:j344hoIJ
ダメ人間って、失礼ですね。別にいいですけど。 /usr/local/pgsql にしかインストールされてません。おかしい。
/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のように、データの編集が行えるものが ほしいのですが、何かありませんでしょうか?
>>237 osqlgrid はわかりませんが、
PgAdminIII ではどうですか。
公式サイトからたどれます。
239 :
237 :2005/05/17(火) 15:52:47 ID:???
>>238 色々触ってみました。どうもありがとうございます。
機能的に申し分ないです。使わせていただこうと思います。
データビューからデータを追加する時って一行ずつ
しか追加できないんでしょうか?
>>237 が説明不足で申し訳ないです。
例えばエクセルのセルをコピーするように
ぐわっとデータを作って、更新。
みたいなことがしたいんです。
>239 AccessとODBCでPostgreSQLに繋いでExcelファイルインポート汁。
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でやりたい事が出来ました。 みなさん、どうもありがとうございました。
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にアップグレードしても、一緒でした。
>>245 initdb の時、--no-locale つけましたか?
247 :
NAME IS NULL :2005/05/18(水) 10:02:12 ID:9taiR1il
>>244 ぐぐれ。
一方は、表をカンマ形式で保存するフォーマットの名前
もう一方は、ソース管理システムの名前
すまん、csvのつもりでcvsと書いてしまう
249 :
FROMA :2005/05/19(木) 18:08:12 ID:64ygOH2e
postgreSQLのテーブルで 行番号ではなく値を指定してその値のあるレコードを配列として取得する方法はありますか?
いままではorder by とlimit,offset を組み合わせて使ってたの?
>>246 実はPostgresの使用経験が、1ヶ月とちょっとでして、
インストーラーに言われるがままで設定を行ったので、
果たして、自分がinitidbをおこなったのか、も覚えてません。
show lc_message; で、何が出ます? C以外なら set lc_messages TO 'C'; とかやって、同じことしてみてください。
show lc_messages; とやってみたところ、japanease_japanと、表示されました。 言われたとおりに、C に変更してみましたが、結果は変わりませんでした。 lc_messagesを、unsetもしてみましたが、一緒でした。
>>253 インストールからやり直した方が早いんじゃね。
ロケール設定でJapanを選ばずにCのままで。
$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入れてない場合が多いです
>>255 その4つだけだとソートとか検索とか関係なさそう。
少なくとも7.4.x以前は--no-localeを忘れるとinitdbやり直さなければならなかった。
real型のフィールドでselectの結果が次のようになります。 db=# select x,x::float8 from point; x | x ---------+------------------ 35.7944 | 35.7944183349609 35.7944 | 35.794376373291 real型で定義してあっても内部ではfloat8の精度を持っているんでしょうか? realにしてもテーブルサイズの節約にはならないんですか?
その辺はソース見て調べるとして、、、 Cでfloat扱うときに実際はdouble使ってんのと同じなんでしょうかね
質問 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ができるか、ってことなのかな…
>>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使いたくないのに。
dllかえるとか
Winに限らず、cseから接続できないな データベース "dbname" が無いと言われる。 ためしに、createdb "\"dbname\"" で作ったらそこにつながった・・・ dll変えてみるか
>>265 CSEのサイトからたどれるDLLでないと正常につながらない。
>>266 ありがとうごあじます。
libpq.dllをカレントに置いたらなんとかつながりました。
しかしschema使ってるとアクセスできないのね・・・
まあ SET SEARCH_PATH TO を実行すれば何とかなるか
268 :
NAME IS NULL :2005/05/27(金) 04:01:04 ID:dGXjOC08
テーブルのテキストエンコーディングを変更したいんだけど ダンプ>変換>書き戻し ってやっていいのかな? もっとスマートな方法あるんだろうか?
中のデータに影響するし、取り出して書き戻しは避けられないのでは
270 :
NAME IS NULL :2005/05/28(土) 01:17:59 ID:YmyCnwZP
>>269 やっぱそうっすか...
一生お目にかからないような漢字が大量にはいってるので
誤変換混じるかもとか思うとちょっと憂鬱...
ベタ変換した後に該当の文字コードだけフロントエンドか何かで変換してやってください
272 :
NAME IS NULL :2005/06/09(木) 21:47:52 ID:76l8WePU
RedHatLinux8、Postgre8で環境作ってます。 WinマシンからAccessでリンクテーブルを張ろうとすると、テーブル選択画面 が表示されるタイミングでサーバーのターミナル画面にエラーが表示されます。 (msysconfテーブルがありません、みたいな内容です。あるわけねぇだろ) これって普通のことでしょうか?リンクテーブルはちゃんと作成できます。 あと、PGADMINでサーバーを追加しようとすると「PostgreはVer7.3以上でない とダメ!」と表示されます。ちゃんとVer8なのに。是非とも対処法をご教授 ください。宜しくお願いします。
>>272 >RedHatLinux8
なんでまた。見たところ開発・テスト環境なんだろ?
ES・ASなり、オープンソースの互換ディストリビューションで
動かしたら?
Red8じゃ試してみようって気にもならないよ。
>>273 そうかもしれんが、OSに依存した問題では無いのでは?
>>273 ですが、
>>275 と、諭されてしまったので調べてみましたよ。
RedhatES2.1
PostgreSQL 8.0.1(rpm)
Access2002SP3
ふつーにインストールして、DB作ってテーブル作って
アクセスからリンク。・・・できますた。
コンソールには特に何もエラーは表示されないです。
リンクテーブルからデータの追加・更新・削除もできます。
そーだ、ODBCドライバは7.01.00.06日本語版です。
pgAdminはX入れてないから勘弁な。
それ答えになってるのかな・・・
じゃあ、お前が調べろよwww俺は面倒しぃ(・ω・)
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の近くでパーサーがなんとかって。 ネットで見つけた文法なんですが。型の変更さえ出来ないなんて・・・。
>>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を書き換えればいいって検索したらあったけど そもそもそんなファイルもフォルダーもないよ 一体どーしたらいいの?
なきゃ作れ つか、/etc/cygserver.conf じゃなくて?
SQLインジェクション対策のため、 ;で繋げた複数のSQLを禁止したいのですが、 それってPostgreSQL側の設定じゃ無理?
そのSQLはどっから投げるのさ
>>287 PHPやPerlから実行します
もちろんアプリケーションレベルでセキュアなのが望ましいのですが、
人間が作るので100%はないでしょう
>>288 ありがとう、検討してみます。
でもうまく設定しないと、正常通信にも影響を与えそうですね。
シータは変わった。 パズーがそう感じ始めたのはいつ頃からだったろう。 シータと暮らし始めて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サイトがみな氏んでいるようなのですが・・・。 誰か接続できる方おいでじゃないですか。
>>293 逆引きできてないだけだろ、
ネタでやってるなら耳から脳みそ吸い出すぞ
/\ /\ /__\ /__\ |´ < ` | 呼んだ? | ´ ゝ` | 彡πヾ⌒i /彡πヾ\ | | / / ̄ ̄ ̄ ̄/ | __(__ニつ/ mind / .| .|____ \/ flayer / (u ⊃
現在DB接続時にhost=localhost user=postgresで接続しているのですが この記述を変更せずにlocalhostのpostgresへの接続をhost=db1にフォワード したいのですが可能でしょうか?
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(スレーブ)が復旧した場合、動的に解除されないのでしょうか?
>>297 どれか使えそうです。ありがとうございます。
300 :
NAME IS NULL :2005/06/22(水) 04:23:26 ID:hqpCe2Fo
せっかく一部上場に勤めてるのに内職バレてクビだなんて馬鹿だね。
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がセットで説明されるように なってるのを見てちょっと疑問に思ったのです。
>>303 > 機能的には最近はあまり差がないように思います。
逆に言うと最近まで差があったということだよね。
質疑応答スレなどではサブクエリが使えないってよく見るし。
あと性能って速度的にと言うことだと思うのだけど、
ベンチマークサイトでよく見る単純なSQLじゃなくて、
せめて複数のテーブルを結合したり、相関サブクエリとか集約関数を
使ったものがあってもいいカナと思ったりする。
#あまりベンチマークを気にしていないので、知らないだけかもしれないが。
俺がPostgreSQLを使い出したのは偶々で、ただ単にMySQLより早く
使う機会が訪れただけなんだけどね。
いc氏に聞けば、「ライセンス問題」って言うだろうな。
昔は日本語対応その他の問題でPostgresの方が良かった。 そのままずっと使ってる。
306 :
NAME IS NULL :2005/06/25(土) 19:18:57 ID:nB8glhnj
insertした項目のserial型の値が取得したいんだけど どうやればいいかな? @@identityみたいなのがあればいいんだけど
>>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時に取得する方法がわからないよ・・・
Pg.pmをインストールするための環境変数をセットする場所が どうしてもわかりません。 具体的には POSTGRES_HOME POSTGRES_LIB POSTGRES_INCLUDE なのですが、postgreSQLのインストール方法が不明であるため、 わからない状態です。(管理者が逃亡してしまいました。。 OSは、FreeBSDです。 postgreSQLのインストール方法は不明です。 ソースからコンパイルのではないようで、はじめから入っていたもの っぽいです。 ご教示いただけますと幸いです。 宜しくお願いいたします。
>>306 SELECT currval('sequence_name');
insert時の自動付与のsequenceをcurrvalでチェックだと、insert処理の 集中時に違う番号呼び出す可能性が高いよ。 sequenceはトランザクション関係なしでnextvalで1つ数が上がるから、 自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。
>>303 MySQLのGPL+独自ライセンスは扱いにくい
商用ライセンス購入以外だと基本的にビジネスには向かない
>>312 > 自分以外が裏でinsertしてるとそっちの番号をgetしちゃう。
同一セッションなら最後のnextvalで取得した番号が出る。
裏(=別セッション)には影響を受けない。
影響を受けるのはlast_value
ちょっと修正。 > 同一セッションなら最後のnextvalで取得した番号が出る。 同一セッションの最後のnextvalで取得した番号が返る。
316 :
303 :2005/06/26(日) 04:33:53 ID:UgDLxZtU
>>304 >>305 >>313 皆さんご意見ありがとうございました。
最近MySQL関連のニュースとか書籍とか多くなって気になってましたので・・・。
PostgreSQLでぜんぜん十分使えるから問題ない、むしろMySQLのほうが
ライセンス絡みで扱いにくいってことなんですね。
>>316 まあ、このスレだから、ってことも考慮した方がいいと思うよ。
実際に業務でだってバシバシ使っているところはたくさんあるんだし。
俺は、なんとなくPostgreSQLが好きだからって理由だけだなあ。
俺はどっちもつかってるが、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型だった場合どういう値を書けばいいのか教えてください
\ds
データが入ってないブランクテーブルのフィールド名を得る方法があれば教えてくさい。
>>321 いや、、、何を使ってだい
やり方はいくらでもあるが、条件絞ってくれないと
手元にpgのdumpファイルがたくさんある。日単位で2年分ぐらいだ。 で、それら全部から特定のテーブル分のデータだけ削除したい。 おしえてままん、、、
>>323 dump形式がテキストなら、
適当にsed(なんでもいいけど)とかでcopyとかcreate tableのところを
削除すればいいんじゃないの?
バイナリなら知らね。
restoreしてdropして再dumpするスクリプト書くとか。
>>302 うちも同じ状況
切断される時間を計ったけど
いまいちはっきりしない
回線品質が悪くてそうなるんだと思う
ADSLとかじゃない?
グチりに来てみた。 FedoraのFC4でPostgreSQLを入れようとしたら、yumのやつが、 v8.0.3だったんでyumで入れた。 ついでにpgAdminも入れておこうと思って、同じようにyumでpgAdminを入れた。 すると、つながらん。 調べてみると、yumのpgAdminは、v1.0.2なんで、pgsqlのv8.0以上のには、 つながらんらしい。(pgAdmin >= 1.2.0) って、おい...
328 :
325 :2005/06/28(火) 09:28:59 ID:???
>>327 NATタイマ?
ローカルのルータの設定?
見てみまーす
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文字 の名前も選択されてしまいます。頭がおかしくなりそうです、助けてください。
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が帰ってきて欲しいのです。
>>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 初心者なので優しくお願いします。
>>337 出来ないくはないが、簡潔な安定した解が出てこない。
それぞれ別に取って、ホスト言語で処理した方がよさそうかな。
>>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でエラーが発生します。 なぜでしょう?
>>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 って品質はどんなものでしょう?
データベースのテーブルからER図作成してくれるソフトって何かないかな? DBDesignerはPostgreSQLに対応してないんだよね
ODBCでなんとかなるよ
>>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値が自動的に入る方法ってないの? 誰か教えてちょ。
PostgreSQLでは''はnullじゃないと思われるがどうか
>>352 NULLと''(空文字)は別だぞ。
そのSQLだとINTEGER型のカラムに空の文字列を挿入していることになる。
で、NULLを挿入するとデフォルト値が入るようにするにはRULEを使えばできるが、
どのみち空文字を判定してNULLに置き換えるのなら、DEFAULTに置き換えた方が早いわな。
INSERT INTO Table VALUES('1','hoge',DEFAULT,'tokyo');
こんな調子だと 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
ESM for PostgreSQLが本家にマージされないかなあ。 PowerGresに金払うのが惜しいわけじゃないけど対応プラットフォームが WindowsとLinuxだけなのは寂しい。
現役で金ズルでしょうからマージされるわけない スタレたらマージされるかもしれんけど
いろいろ検討してるんだけど、Solaris に対応して無いものが 結構多いんだよな。
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
解決しました。 pg_ident.confにマップが定義してあったら、 psql -lとかやったときに勝手にpostgresユーザーになると思い込んでたけど、 -U postgresと指定する必要があっただけでした。 すいません。
SQL文でつまったので質問させてください UPDATE TableA INNER JOIN TableB WHERE TableA.id = TableB.id SET TableA.Name = TableB.Name みたいなSQLを書きたいのですが Postges風に書き直すとどうなるのでしょうか?
>>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製のしかほとんど触ったことなかったからちょっと気になる
test
ヒント:SQL92
ちょっと教えてください。 COPY ... FROM ... で、CSVファイルからインポートする時に カンマで区切られた空のフィールドをNULLとして認識させることってできますか? ↓4番目のカラムにNULLと認識させたい・・・ 1,2,3,,5 どなたかよろしくお願いします。
テキストファイルだし、スクリプトか何かで加工してはどうか
>>359 ESMの元になってるSymfowareってロックベースの並行性制御じゃなかったっけ?
ハマれば速いかも知れないけど、使い方が難しそうな悪寒
>>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? なんて表示されちまいます。 設定ミスってますかね?
>>373 postgresql.confのlisten_addressesかな。
しかし、これで引っかかっている場合
そゆエラーメッセージじゃなかったような気もする。
ちゃんと穴が空いているか確認も必要かも。
>>373 メニューからセキュリティレベルを開いて、
その他のポートとしてTCPの5432を追加
376 :
NAME IS NULL :2005/08/02(火) 23:08:59 ID:7fcOfF8A
377 :
373 :2005/08/03(水) 00:17:16 ID:???
378 :
377 :2005/08/03(水) 09:34:15 ID:???
原因判明しますた。 インストールしたままの状態だったpostgtes.confを確認したら、 listen_addressesとportがコメントアウトされてた。。。orz 吊ってきます
portはデフォルトの5432のままでいいからコメントアウトされててもいいんだよ listen_address は、デフォルト127.0.0.1だから、*とかに変更しないとだめ。
JavaからJDBC経由でPostgresSQLを使う場合に 〜.sqlのようなファイルに書かれてるSQLを psqlのバッチ処理のような形で実行することは可能ですか? Java側からファイルを開いて、一件ずつ実行してくしかないでしょうか? 知ってる人いたらお願いします。
一件づつ実行ったってすぐじゃん。 String s; BufferedReader r = new BufferedReader(new FileReader("hoge.sql")); Statement stmt = connection.createStatement(); while((s = r.readLine()) != null){ stmt.addBatch(s); } stmt.executeBatch();
もしくは標準入力からくわせてやっていいんじゃねーの?
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 です。 はぁ、疲れてるなぁ・・・
すみません。ちょっと質問させてください。 だいぶ前に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の起動方法に問題があるのでしょうか?
>>384 インスタンスでわける形態であれば、portを変える事で
同じことができます。
DBひとつでやりたいなら、pg_ident.conf併用が使えると思います。
>>387 エラーの詳細はわかりませんか?
syslogや、-lオプション等で出せると思うのですが
教えてください。 FedoraCore2でPostgres8.0を使っていますが、 EUC−SJIS間の自動文字コード変換がどうしても理解できません。 これは結局、TELNET等で接続をする場合はCLIENT_ENCODINGの設定によって OSのデフォルトエンコーディングの違いを気にすることはない、 CGI、PHP、JAVA等でwebアプリを作る場合は、プログラムでFORMから受け取った データをDBの文字コードに変換する必要がある、ということでいいのでしょうか?
>>392 CLIENT_ENCODINGを設定すれば、DB側で勝手に変換してくれるってことだ。
それが、telnetだろうが、Webアプリのスクリプトであろうが同じ事。
例えば、SJISなユーザ入力をWebアプリ側で全く変換せずにそのまま
DBに渡す場合は、CLIENT_ENCODINGをSJISに設定しておけばいい。
とは言うものの、普通はDBとスクリプトの内部コードは同じ(例えばEUC)にしておき
HTTP入出力だけSJISにしたい場合は、スクリプト側で変換することになると思う。
DBとスプリクトのコードが違う場合は、それぞれの環境によって違うだろうけど、
DB接続時にSET CLIENT_ENCODING しておいてDB側で変換するほうが、
後々の環境変化などにも対処しやすくて、楽だとは思うけどね。
javaからやるときゃ、UNICODE指定したほうが楽
395 :
392 :2005/08/10(水) 18:58:55 ID:???
>>393 >>394 お返事ありがとうございます。
もう少しお付き合いいただけますでしょうか。
DBがEUC、スクリプトもEUCで
Webアプリへの入力が、Linux(EUC)とWindows(SJIS)という場合は、
WebアプリでSJISの入力のみをEUCに変換しなければならないのでしょうか?
>>395 そういうことなんだが、なんでWindowsがSJISになる必要があるん?
携帯ならわかるけど。
って、LinuxとかWindowsってのはクライアント側のブラウザが動いている
環境のことを言っているのだととったのだが...
と、スクリプト言語は何よ。
>>395 Webアプリの場合にはWebサーバが指定された文字にエンコードしたりデコードしたりしてくれている
例えばPHPのようなスクリプトはそもそもEUC-JPじゃないと上手く日本語の混じったスクリプトが
実行できない場合がある、PostgreSQLもEUCに設定してあるなら全てEUCで統一すりゃいいんじゃない?
あと、DBが変換してると思っているようだけどDBは変換しませんよ
例えばODBC接続の場合ODBCドライバーが変換してDBと通信してくれてるだけ
libpqを使う場合も同様でlibpqの関数をコールする時に文字コードを指定して変換してます
だからスクリプトでも必然性があって文字コードを変更したいなら独自に変換する必要ありです
>>394 UNICODEにしたらDBサイズが大きくなりすぎ
>>397 > あと、DBが変換してると思っているようだけどDBは変換しませんよ
>>393 ,396なんだけど、postgresqlには、
SET client_encoding = 'EUC-JP';
というような"SQL文"があるので、DB側で変換してくれていると思っていたのだが、
違うのか?
DBのバックエンドが変換しているのではなくて、フロントエンドに組み込まれたlibpqで
変換しているのか?
libpq側で変換すると言うのならpostgresql.confでもclient_encodingを指定できると言うのも、
おかしいと思う。
オレもバックエンドだと思ってたが。
odbcでも、接続時に SET CLIENT_ENCODING 発行してるだけだし。
>>398 いや、client_encoding がunicode
DBのencodingはEUC_JP
すみません 今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 とすれば文字列として取れるんですが、、、 何がいけないんでしょうか?
int * がいけないんじゃないのかな。
404 :
402 :2005/08/14(日) 01:10:18 ID:???
う・・まじすか? テーブルのデータ型が何であろうと文字列で返ってくるんですか? atoiすりゃおkっすかね、、、 ぶっちゃけC初心者なもんで 出直してきます
atoiはエラー判定できないので、strtolがお勧めです。
>>404 ライブラリで型変換させると実装がめんどくさいからね。
ユーザプログラムには全て文字列で渡すのが一番。
でも転送量が増えて損した気分。
>>407 そこで、ギガビットイーサかファイバーチャネルで接続ですよ
無意味に早いですよ、お客さん
こんばんは、質問します。 plpgsqlを使用しているのですが 引数から取得した列でORDER BYをしたいのですがうまくいきません。 WHEREのときは引数から取得した文字列、数字で検索できたのに ORDER BYではうまくいかないのでしょうか?
>>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';
>>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 などとするのですが、そんなデータベースは無いと言われてしまいます。 どこか見直す所はありますか?どこを変更すれば読めるのでしょうか。 お願いします。
無理っぽいですなぁ そもそも postgresqlは起動できてますか? 普通はpg_dumpとかpg_dumpallでバックアップしてないと 無理なわけですけど、諦めきれない?
>>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/ 以外に設定ファイルはありますか?
>>418 へんなことしてなきゃdata/の下だけのはず。
バックアップも取ってないヤツに限ってあきらめがわるい、自業自得
同じバージョン、同じCPU、同じOSなら 普通にディレクトリ data 以下のコピーだけで データ使えるけどなあ
ああ、OS違うのか。 どうしても駄目なら、前のOSインストールして ダンプしてもってくればいいじゃん
ミスってシステム消したくせに 違うOSでチャレンジしようなんて デンジャーな人だ 普通は同じOSで同じ バージョンでって考えるよね やっぱデンジャーな人だ
424 :
415 :2005/08/18(木) 22:01:17 ID:0C+UOkYY
data/ 以下を置き直して、 $ psql my_db としたらpgsqlというユーザーが無いとか言われました。 ユーザーの情報ってどこに書き込まれていますか? データベースはpgsqlというユーザーで作りました。
>>424 技術系のMLとかで質問するためのプロトコルを身につけろ。
あせっているのはわからんでもないが。
まず、せっかく
>>417 が手順を提示してくれた訳だが、それを正しく実行したのかどうかも怪しいな。
自分がどのような確認手順を踏んだ結果、psqlを実行してみてもダメだったと言うことを書く。
その手順に間違いがないかをまず検証してもらう。
confファイル類を提示して検証してもらう。
そういうことをしなさい。
お前さんのみたいに結論だけ書いたってまともに相手してもらえんよ。
元々間抜けな自体を引き起こした奴が復旧作業をまともにできるとは皆、思ってないし。
作業手順に間違いが無いわけがないとみんな思っているのだから、答えは得られんよ。
仮に答えてくれようとする人がいたとしても、お前さんのコミュニケーション手法では救援不能。
パーミッションって言葉が彼に理解できるのか分からないけど コピーした data/ のパーミッションは大丈夫なのか?を確認したりしろ 又は、金払う勇気があるなら俺がやってやってもいいけど 連絡のしようがないね(^^;
>>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
>>429 大丈夫。
data以下が残っていれば、おそらく復旧できるよ。
落ち着いてゆっくりがんばれ。
>>429 試行錯誤はともかく、作業の記録はするように。
何をやってどういう状況かを報告して、助言を貰うためには必要。
それをしなければ、時間の無駄だから。
1.目的 2.やったこと 3.結果 最低でもこの3つを書いてくれないと答えようもない 特に結果は細かくかいてくれないとね エラーメッセージは確実にコピペ これが守られないと質問に答える側にストレスたまりまくる 怯んで、試行錯誤してから質問しますなんて言わずに テキパキ片付けようや
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 試行錯誤の結果まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | .PowerGres. |/
あきらめました。MySQLに以降します。
初心者とかを猛攻するのよくないと思う
>>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です。
>>439 insert into hoge1 (field2) values ('ほげほげ');
select currval('hoge1_field1_seq');
442 :
NAME IS NULL :2005/08/25(木) 12:59:40 ID:OOhU0d1m
>441 ありがとうございました。簡単にできてしまいました。
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するにはどういう手順がベストでしょうか?
>>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で探したんですが有償のものが多いようです。良いものがありましたら教えてください。
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系どちらをインストールしたほうがよいでしょうか? よろしければお教えください。
PostgreSQLにキレた事はありますか?
>>454 貴方がご質問された内容は理解できません
ご質問内容をご確認の上、再度お書き込みください
458 :
449 :2005/09/04(日) 18:02:32 ID:???
>>456 どうもありがとうございます。こちらも試してみます。
>>453 日本語は大丈夫なようです。PostgreSQLのエンコードがUNICODEなんですが…。SJISとかは試してみません。
7.3を使ってるのですが、Mysqlでいう@hogeのようなユーザ変数ってないんでしょうか?
460 :
NAME IS NULL :2005/09/07(水) 04:07:07 ID:Ew4HgFdN
Mac OS X 10.3 においてポスグレのアカウント設定の仕方教えてください!
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で入るのとかどうやるんでしょ?
>>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を使いたいのですが。。 以上
>>465 varcharだからじゃないかな。text使えって言われるけど。
467 :
困ったちゃん :2005/09/14(水) 19:54:37 ID:iP7kyEwM
>>466 早速のアドバイス恐れ入ります。
ある意味常識でしたか!?
早速各テーブルを一律、varchar→text に変えて再確認してみます。
>>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)必要に応じてデータベースをリストア
>>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) と表示されました。 どなたか対処法をお教えください。
posgre関係ないじゃん。 OS×スレ池よ。
>>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って何の項目ですか?
質問age
avgで平均値だすと小数点以下がやたらとたくさんでてくるのですが、 1桁に制限したいと思ってます。 select numeric(5,1) avg(hoge) from ... みたいにしたらエラーになってしまいますが、何かいい方法は ありませんでしょうか?
>>479 SELECT avg(hoge)::numeric(5,1) FROM foo;
>>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' このようなエラーがでます
listen_addressesに変更になった。 "tcpip_socket postgresql 8.0" でググればすぐ判るはずだが。
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
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 を外部キー参照している テーブルとカラムの一覧を取得する方法はあるか、ということになるかと思います。
これまでMySQLを使ってましたが、PostgreSQLもやろうと思ってます。 参考になるサイトや本を探してますが、お勧めはありますか? MySQLの時、初めて買った本が、rootで動かしたりするようなもので、 サンプルも後から見ると無駄な感じのものだったりして、変な癖が 付いてしまいました。それで最初が大事だということを痛感しました。 Googleでも探して上から見てますが、上の方に参考にすべきでない サイトが出ても自分では判断できないので、ここで尋ねてみました。
質問お願いします。 PostgreSQLをコマンドラインで操作した時のcallBackメッセージ "DELETE 2" "UPDATE 1" とかをPHPからの接続で取得するにはどうすればよいでしょうか?
>>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でした。
ありがとうございました。
>>490 PostgreSQLはマニュアルの日本語訳がオンラインで読めるはず。
本はインストールの話ばかりそれ以外であまり役に立つとは思えない。
495 :
488 :2005/09/26(月) 00:57:41 ID:???
自己解決です。 システムテーブル pg_constraint を引くことにより、あるカラムを外部キー参照しているカラムを取得することができました。 お騒がせしました。 でも、もし外部キー参照されうるレコードのうち実際に参照されていないレコードを削除する簡単な方法があるようでしたら、 教えていただければと思います。
>>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 = '▼'; とすると、▽もでてくる。 日本語だからか・・・
502 :
NAME IS NULL :2005/09/27(火) 10:44:01 ID:jV9Mpaom
カラムの型変更って出来ますか?
マニュアルも読まないクソが勉強しますっても白々しいだけ。
>>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
「統計情報収集器」で探すが良かろう。
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 して再度テーブルを作り直しましたが,直りませんでした. 解決策やヒントがあればアドバイスお願いします
>>512 --no-locale は postgresql.confでは書きかえれない項目もあったはず。
initdb --no-locale からやり直し。
PostgreSQL8.0.3で、いちばん手っ取り早いパフォーマンスの 向上設定って、どんなんでしょう? マシンスペックは上げずに。
>>514 "-O2"オプションつけてコンパイルする。
Shared Memoryを多めにとる。
>>515 レスありがとうございます。
手順的には、
(1) pg_dumpでバックアップ
(2) 再コンパイルして再インストール
(3) バックアップしたDBをリストア
って感じでよいでしょうか?
>>517 なるほど、pg_dumpallですね。
ありがとうございますた!
postgresの機能で帳票作って使ってる人っています?
>>514 コンパイルより先に、Shared Memoryを多めにとるの方をやったほうがよくないか?
521 :
NAME IS NULL :2005/09/30(金) 18:20:26 ID:CBPENad1
5000万件くらいのアクセスログデータの加工・集計したいんだけど、 やっぱpostgresじゃムリポ? OracleにSAS被せるしかないんかな?
そんなん件数だけで判断できるわけがない。 パフォーマンスの話じゃなくてシステム的な制約、問題等についてならば、 とりあえず延べレコード数20億までなら問題は生じないと考えて良い。
ログデータだと汎用RDBではなくて自作したほうが速度的にいい場合も多いよ 並列度合いを簡単に最適化できるしね
つミ awk
awkerの俺に言わせていただくと、その件数はちょっときつい DBで扱えるならそっちがいいんじゃないかなー
>>521 参考にならないと思うけど
毎日2000万件くらいのApacheのログを
すっげーショボいマシンのMS SQL Serverに突っ込んでいろいろやらされてるから
いまどきのマシンにPostgres入ってるなら大丈夫じゃね?
ログデータの変換→登録に時間がかかるから、RDBの方が余計な処理が多いだろ。 そのデータを何度も使い回すなら、DBに登録する価値も出てくる、かも知れないが。 その場合であっても、RDBじゃなくてDBMでの実装を先に考えた方がいいのでは? まずPerlなどで作ってみて、テスト。 その後、Cで作り直すか、RDBMSに頼るか判断してみれば?
Cで作り直すかRDBMSに頼るかって、...選択肢としておかしいだろう。
529 :
521 :2005/10/03(月) 11:10:32 ID:X8D6IlXJ
みなさん、ありがd 5000万件の中から、特定のクッキーやリファラを集計して、 応答速度15秒前後というのを目指してました。 postgresで出来そうなことは大概やったと思うので、 やはりテキストかDBMに変えて頑張ってみようと思います。
>>529 その書きぶりは、とりあえずやってみたってことなのかな?
で、PostgreSQL でダメだったのをテキストベースでやってうまくいく算段があるの?
仮にログ1行 200バイトとしたら、5000万件のログは 10GBオーダーになるから、読むだけで 15秒じゃ終わらないと思うけど。
ところで、DBMってなに?
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
>>530 > ところで、DBMってなに?
ファイルに保存するハッシュみたいなもん。
でいいのかな?
約1500万件ほどのレコードあって、これのdatabase_sizeが約1Gぐらいです。 少しでもサイズを削減しようと思って oid 列を削除したのですが 1M 程度 しか減りませんでした(vacuum full はしました)。 マニュアルには以下のようにあるので 15000000 * 4 / 1024 / 1024 ≒57M ぐらい 減ると思ったのですが、なぜ1M程度しか違いがないのでしょうか。 PostgreSQL 8.0.3 on Windows を使ってます。 >また、OIDをなくすことで、テーブル1行当たり(ほとんどのマシンで)4バイト分 >そのテーブルをディスクに格納するための容量を軽減でき、多少性能が向上します。
>>535 すでに存在するレコードについては減らんよ。
サイズ減らしたいならdump/restoreすること。
>>536 すんません、言葉が足りませんでした。
最初、with oids で作成したあとにalter table で削除するとぜんぜん減らなかったので、
drop databaseしてcreate table without oids からやり直しました。
で、その結果1Mしか減りませんでした。
カラム型をint8からint4にしたときはそれなりに減ったのですが・・・うーん。
>>533 レス有難うございます。
何といいますか、いまいちうまくいきません。。
もう少し試してみて報告できればと思います。
>>537 8.0系だと、アライメントが8の環境ではOIDを消してもほとんど効果が無いかもしれない。
アライメントの隙間にOIDが収まる形になっているから。
540 :
535 :2005/10/05(水) 00:22:54 ID:???
>>539 うーむ、そういうことなのか。
今日、念のため15万件のデータで追試してwithout oidsの方がサイズが大きくなって
しまいあきらめてました。
実践ハイパフォーマンスMySQLのPostgres版みたいな本ってありますか?
542 :
NAME IS NULL :2005/10/08(土) 20:52:37 ID:g8QS5IgG
テーブルの中の行を(drop table使うんじゃなくて)delete from hoge;で全部消すと、 100000行のテーブルより、1000行のテーブルの方が倍以上時間かかるときがあるけど、普通の動作ですか。
1行がものすごく長かったり、張られたインデックスが多いと、そういうこともあるかもしれん。
>>543 行が長いのって関係ある?インデックスが多いと遅くなるかもなのは同意。
8.0.4のリリースノートの変更点の最初にある 「VACUUMによってctidチェーンがすぐに削除されてしまうエラーを修正し、ctidリンクを追跡するコードにおいてより 多くの検査を行うようにしました。 これにより、長い間存在した、非常に稀な環境におけるクラッシュという問題が修正されました。」 っていうの具体的にどういう場合か分かる人教えていただきたいです。原因不明で壊れたことが何度かあるんで 当てはまるのかどうか知りたいんですが…。
8.0.4で、パフォーマンス的な変更ってありますか?
MySQLの、"SHOW CREATE TABLE" 相当の命令って何?
548 :
NAME IS NULL :2005/10/13(木) 19:00:23 ID:gH/NQbzp
\dt
550 :
NAME IS NULL :2005/10/14(金) 00:26:52 ID:hpl5A/eC
データベースはじめ立ての超初心者です。 テーブルからデータを抽出したときに、連続する5件のデータを取り出したいと思っています。 上から5件分抽出とか、上から6件目〜10件目までを抽出という操作がしたいです。 主キーで取れよといわれるかもしれませんが、 カラムの削除後に主キーに空白が出来てしまうので正確に5件取ることができません。 調べてみましたが、いいヒントが見つかりません。 どなたか解決法を教えてください!
>>550 LIMIT と OFFSET かな。
ついでに言うとORDER BYがない場合、抽出するデータの順序は決まってない。
まぁ変わることはそうそうないけど、保証はしてないってことで。
#LIMITのような標準でない(多くのDBMSにあるがな)SQLは邪道だ!
#男は黙ってCURSORを使う! って香具師居る?
552 :
550 :2005/10/14(金) 01:20:27 ID:hpl5A/eC
553 :
NAME IS NULL :2005/10/14(金) 11:30:15 ID:UgUZzQRh
便乗質問でスマソですが、AccessのTop関数みたいなのないかな? 上位10位とか・・・
>>553 LIMIT OFFSET がそうだが釣りか?
便乗といって同じ質問をしてくる奴がたまにいるよなw OFFSETの指定無しで LIMITだけ使えば TOP と同じ機能のはずだ。
556 :
NAME IS NULL :2005/10/14(金) 14:32:35 ID:UgUZzQRh
ごめんなさい、TOPってそういう関数でしたか。 やりたかったのは、あるカラムの上位10位と指定したいのです。 20番目も10番目と同じ値の場合は20件目も出して欲しかったのですが・・・。
>>556 専用の命令があるかどうか確かめてないが、普通はサブクエリ使ってしまいますね。
select * from table1 a where (select count(*) from table1 b where b.score > a.score) < 10;
てすと
559 :
NAME IS NULL :2005/10/17(月) 18:25:46 ID:AJD/n9Su
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. って怒られたんだけど、なにこれ? 何とかデータ移行したいんですが、、、 誰か教えてください。
>>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してくれよー。
565 :
562 :2005/10/20(木) 00:24:37 ID:Lz1HsY+Z
>>564 いや、date型のままで年、月、日を個別にnull指定したいということなんだが・・・
ムリだろうか。
>>565 例えば
2005年NULL月29日
ってことだろうか?
たぶん無理だろうけど、
なんでそんなことしたいん?
>2005年NULL月29日 ワラタ
>>566 565さんじゃないけど、例えば「5月の注文を受けたけど日付は不明」みたいなことは、
ありうるかもね。あんまりいいこととは思えないけど。
>>568 それってdate型の意味が無いような・・・
設計見直した方が良さそうだ
期間なら、開始と終了を持たせればよいけど、 「毎月15日の予定」を表したいと思うと、ちと面倒か。
>>571 ちなみにそういうときってどーするもん?
漏れはそういうときはtext型で「15」だけもって、
あとは言語で処理なんだけど、もしかして間違ってる?
年月日がそれぞれ別なら普通 Year / Month / Day_of_month とかに分けるだろ
574 :
NAME IS NULL :2005/10/21(金) 04:14:36 ID:LymSDkRT
文字化けする〜 レン鯖でpostgresqlをjspで操作しているのだが 文字コードが違うのか 「〜」 が削除されたり「?」になったりする 他の文字は全て正常に格納されるから逆に不思議だ こっちはShift_JISで操作しているが、向こうの文字コードの設定が不明 sql操作で設定された文字コードを知ることは出来ないだろうか 鯖缶に聞け はなし そんな鯖やめろ もなしで
576 :
574 :2005/10/21(金) 05:06:15 ID:LymSDkRT
>>575 サンクス EUC_JP だった
UNICODEもEUC_JPも試したんだが・・・おかしい
>>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を設定してる
JSPで文字化けって検索しないのかよ 出力エンコーディング指定はShift_JISじゃだめだぞ MS932かWindows-31J これらは他の文字コードコンバータとフルウイドスチルダの格納先が違う なぜといわれてもMSだけ違うのでかなり昔から問題になってたやつだ postgresの問題じゃないよ
>>579 × Shift_JIS
○ Windows-31J
旧漢字って格納する方法ありますかね? はしごたか、とか。
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
>>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:???
587 :
NAME IS NULL :2005/10/21(金) 19:45:15 ID:bovSjVTN
質問があります。 テーブル1のリストの各々が専用のテーブルを所有していて そのテーブル1を専用のテーブルの内容を使ってUPDATEで更新 したいのですが、そういうのはできるのでしょうか? できるとしたらどのような感じになるのでしょうか? 今PHPでプログラムを組んでいるのですが、 最悪の場合、テーブル1のリストの配列を用意して 1つ1つ更新しなければならないのかなと・・・
>>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 直したらうまくいきました、ほんとありがとう
ドジっ子キター
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ドライブに入れたいのですが、不可能なのでしょうか?
CドラがNTFSで、DドラがFATとか。
ご指摘どうもですm(_ _)m プロパティで見たところどちらもNTFSのようです。
まぁPostgres8はDB格納先かえれるから Postgres本体はシステムドライブで、データは他のドライブでというのもありだろうね で、そのエラー俺も知り合いの家で見たことがある セットアップ中の選択だったかが問題だったような ドライブ自体はDでもいってるよ エラーメッセージのパスがなんか変な気がする・・・
596 :
NAME IS NULL :2005/10/22(土) 00:15:23 ID:P6gGuKwd
7.3.4使ってるんだけど、 レコード数に制約とかない? ディスクに許すだけ格納可能?
>>596 最大10億行/テーブル くらいかな。実質 制限はないと思ってよい。
性能の制約があるから、実質は100万行まで。
んなわけない。 結局は要件と設計しだいだが、実際に10億件くらい扱っていて 実用的に使えているシステムはある。
600 :
NAME IS NULL :2005/10/22(土) 17:59:31 ID:G1rn7p/p
>>599 すみません、大きな規模のDBを扱ったことないので聞きたいのですがどのくらいのハードで動いてるんですか?それ
そんなに凄いレコードで ちゃんとvaccumとかデータベースのバックアップが 上手くいくもんなんだろうか
嘘に決まってるじゃん。
>>600 5年くらい前の中堅PCサーバーだよ。
ディスクも入れて700万円くらいの。
>>601 vacuum/バックアップは一晩かかるけど特に問題は出ていない。
reindexは2-3日かかってしまうけどね。
OSのエディション教えてくれ
vacuumを考えると8じゃないとこわいかもな
100万行単位ならそう性能面で問題は感じないな。 xeon 3GHz 4 発のサーバ。 数千万行になるとテーブルの構造や SQL にだいぶ注意が必要。
どのDBMSでも同じだけど、大規模DBでは ・一度にアクセスされるブロック数を最小に抑える ・SeqScanかかったらアウト きちんとチューニングしようとしたら、プランナ/オプティマイザの特性や 内部構造に関する知識が不可欠。
>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 みたいになります。 どうしたら解決できますか?
>>609 Postgresのバージョンぐらいは書こうな。
多分、
>>472 辺りの問題ではないかと思われ。
Windows版だったらロケールとかいじらなければそのままうまくいくのにね・・・
8.1beta4age
613 :
NAME IS NULL :2005/10/25(火) 15:34:11 ID:nrK3GlWT
ミラクルリナックスV3.0にPostgreSQL 8.0.3または8.0.4を インストールするときの問題点や注意点、その組み合わせで 運用した場合の問題点等ありますでしょうか?
そんなもん、ミラクルにきけよw
>>613 そういうレベルでインストールすること自体が一番の問題点だな。
>>615 せっかくインストールして楽しもうという人にそんなこと言うのはイクナイ
しかし、なんでミラクルよ
遅レスですが、
>>411 みたいなのって動的SQL使わずになんとかならないもんですかね。
WHERE句はCASE-WHENでいけたんですが…
ものスゴイ嫌がらせ思いついた 1 :以下、名無しにかわりましてVIPがお送りします :2005/04/25(月) 04:44:27 ID:cxwJSDGr0 例えばさ、ID非表示の板で質問したやつがいるとするじゃん? で、その答えがくる前に名前欄にそいつのレス番入れて 「すみません、自己解決しました」って入れるんだよ マジコレはハマるwwwwwww
621 :
619 :2005/10/26(水) 19:21:45 ID:???
すみません、自己解決しました
where id between 100 and 200 にしたら1100とか1203とか左から解釈したで あろうものがひっかかります なんでですか
>>624 id をchar/varcharで定義してない?
626 :
NAME IS NULL :2005/10/27(木) 09:50:05 ID:j1fXyoBk
巨大なデータベースで インデックスを適切に作ってもなおかつ SELECT するのに時間がかかる場合に, 検索を高速化する方法はあるのでしょうか?
>>626 本当にインデックスが使用されているのかと…
630 :
626 :2005/10/27(木) 10:17:56 ID:j1fXyoBk
>>628 explain で確認しているので
インデックスが使われていることはまちがいないです
1つの800万くらいレコードがあります
>>630 インデックスが適切に使われてないとか。
複数カラムでインデックスはってるのに、使ってるのは
単カラムとか。
対策としては、テーブルわけるとかDBわけるとか
postgresには複数のテーブルをひとつのテーブルとして
扱う機能はなかったっけ?joinじゃなくて。
632 :
626 :2005/10/28(金) 09:26:34 ID:Hm3lQFg3
いろいろ教えてもらいありがとうございます 関連した質問で 1つのテーブルで, たとえば n 個レコードがあって その中から SELECT して k 個がヒットする場合に いちばんうまくインデックスをはって ヴァキュウムもしてあって, 最良の状態でも 最低どれくらいの計算量がいる,と 見積もるような公式というか方法論はあるのでしょうか?
634 :
NAME IS NULL :2005/10/28(金) 09:38:50 ID:Hm3lQFg3
>>633 EXPLAIN は SQL の入力に対して,
どのように計算して,
どれくらい計算量がいるか見つもるものですよね?
そうじゃなくて,
なんというか検索の理論的な限界を知りたいわけです.
その限界値と EXPLAIN の出す計算量の見つもりを
比較して近い値になったら
もうインデックスは最良になってると,
あきらめがつくわけです
>>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のストアドが詳しく説明されている日本語サイトはないでしょうか? 本家日訳を見ながらやっているのですが…。
質問です。 => 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 というテーブルが作られるようにするにはどうしたらよいのでしょうか。
>>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 はい、これで希望した動作になりました。ありがとうございます。
>>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; 最後に先頭のカンマを除いてやるのに、 わざわざ関数を作って呼び出すのも なんだかなぁ〜。
ポスグレで固定長ファイルをテーブルに読み込む方法ってありますか?
異なるバージョンのプスグレを、異なるポートを使って 同時に稼働させることは可能ですか?
Unix系なら簡単にできるとは思うが。
質問です。 あるテーブルの容量を知りたいときはどうすればいいのでしょうか? PostgreSQLが管理しているディレクトリの容量を コマンドラインで確認すればいいような気がしましたが、 どのディレクトリにどのテーブルが格納されているかは PostgreSQLを経由しないとわからないような気がしました。 最終的にはPHPで参照して出力したいので、 PHPの関数も探しましたが見当たりませんでした。。。 すみませんが宜しくお願いします。
>>645 rootになってlsすればいいんじゃね?
648 :
NAME IS NULL :2005/11/02(水) 10:49:38 ID:o5XJyoqf
PostgreSQLでOracleのMergeと同等のものはないでしょうか? 主キー制約に反するかどうかのチェックをするのに 一旦SelectしたあとInsertのようなことをプログラムで実現しています。 これを1回のコネクションではできないでしょうか?
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を使ってテーブル一覧などを 取得(表示)させる方法はありますか?
v8.xで使える、Windows用のODBCドライバってありますか? インターウィズのは古いですよね?
Excel2000でODBCドライバ使うとエラーが。。。
もっと具体的に
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 です。宜しくお願いします!
>>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
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
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
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) 同じ症状の人いますか?
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 をかけたいときにはみなさんどうしてますか?
>>672 ODBCって、SQLの解釈はODBC側で行うから、PostgresのSQLはエラーになると思うけど。
SELECT TOP 100 xxx, yyy FROM table
でいいんじゃないかな。
8,1でたね。
8.1でたね!
8.1は64bit対応ってことだけど、 16GBくらい積んでる64bitマシンに、15GBとか割り当てると すごく速くなったりするのかな? お金ないから試せないけどorz
679 :
672 :2005/11/10(木) 15:07:54 ID:K6TqKaxO
>>673 TOP をためしてみたんですが,
TOP も使えないみたいですね
このような場合,ヒット件数を
制限するにはどうしたらいいのでしょうか?
>>678 32GB積んでる64bitマシンを自由に使えるけど、試してみようかなあ
64bitはsoも統一しなきゃならなくて、めんどくさくてやってないが・・
8.1のWindowsバイナリja版がまだリリースされていないけど、ja版じゃないやつをインストールとどうなるの?
>>680 うらやまし杉。
漏れも是非、結果を聞きたい。
テーブルサイズがデカい場合、
驚異的な差が出そうな希ガス。
>>679 recordset に直接生SQLわたすんじゃだめ?
>>682 インストールした後、普通に使えるけど?
ja版ってなにがjaなの?
>>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の設定が 有効になりますか? オプション設定もよくわかりません。 わかる方お願いします。
それだけの情報でわかる加代。 postgres.confとhba.confがデフォなんだろ、どーせ。
postgresql.confね。
692 :
NAME IS NULL :2005/11/10(木) 22:46:04 ID:T7cdWFCL
ありがとうございます。 Postgresql.confですか、わかりました。 どこを編集したらいいですか?
>>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 の方とまったく同じにするために, なるべく簡単でいい方法はありますか? ただし,ファイルにデータを落とす方法は除外します
>>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 いれたほうがいいか まあ無しでエラー出ても動くけど
簡単かどうか知らんが、レプリケーションしたいというのなら、 usogresとかpgreplicatorとかSlony-I じゃねーの。
テーブル単位で同期させるならその中ならSlonyしかないでしょ そもそもそれ以外は起動前に内容一致させとかなきゃならんし
704 :
NAME IS NULL :2005/11/11(金) 19:00:36 ID:vWg2X9K2
db_linkでごっそりもってくるとか。。。
マスタテーブルがいくつか、それらを結びつける中間テーブルがいくつかあって、 ジョインを多用しています。 select/insert/updateでのインデックスの張り方で、汎用的な方法ってありますか? 詰めSQLしないで、パフォーマンスを上げたいのですが。。。
意訳すると「自分では詰めSQLしたくないから、お前らやってくれ」か?
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を使用しています。 ポストグレ側の設定がおかしいのでしょうか? わかる方、お願いします。
>708-709 ワラタ
そのサーバー上でpsql使ってポート8040で つながるの?
712 :
NAME IS NULL :2005/11/15(火) 08:59:07 ID:DhdmtWa8
>>708 だいたい人にもの聞くのに、何が「早急に」だよ。
エラソーな。
まともなJDBCはいつ実装されますか?
708はPHPスレで解決(?)したみたいですよw
716 :
NAME IS NULL :2005/11/15(火) 19:31:23 ID:D2yxaO+1
text型で「19790504」と入っているデータを年齢データ(ここ では26歳なので26)として出したいのですが、to_timestamp やage関数を組み合わせてもうまくいきません。 よい方法があればご教示いただきたく思っております。 宜しくお願いいたします。
実際にやってみてダメだったコードかいてもらわんと
>>716 timestamp型ではなくてdate型にキャストしてみるとか。
SELECT age('19790504'::date);
>>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 するとしますよね それで,体感的にもかなり時間がかかるものとします このとき途中経過を得る方法はないのでしょうか? 現在,何%くらい検索がすすんでいて, あと何秒くらいで終わるよ,とかいう情報です
>>720 そんなことするより、チューニングすることを考えるべきかと。
インデックスやSQLの見直しなど含め。
>>720 たぶん、理論的に無理。
進捗を計算するには、全体の量が先に分からないといけないのに、
全体の量が分かるのは、すべての処理が終わってからだから。
ごく単純なシーケンシャルスキャンなら、ある程度は推定できるが、
汎用的な方法は無いと思う。
724 :
NAME IS NULL :2005/11/16(水) 23:26:48 ID:UHmoqGjy
explain analyze でいいんじゃない? どの部分で時間がかかっているかわかるはずだけど。
Count(*) してからサーバーカーソルを使うとか お勧めはしないけど。
多分
>>720 は分析のためではなくて、ダウンロードとかで
「あと何秒です」というような表示をするのと同じようなことを、
検索処理でユーザに対して表示したいのかなと、思ってる。
当り?
727 :
720 :2005/11/18(金) 10:41:07 ID:orrnrvws
>>726 のおっしゃる通りで,
プログラム上で時間のかかる検索をした場合に
たとえばプログレスバーっていうんですかね,
あの棒グラフみたいなやつで表示するとか,
グラフィカルじゃなくても数値でもいいんですが,
とにかく途中経過が表示されるのとされないのでは
ユーザの使い勝手がまったく違うわけです.
検索が常に一瞬でおわるならば,
この必要性はないのですが,
仕様上どうしても時間のかかる検索をする
必要があるケースがあるわけです
explain は承知していますが,
この目的にはあまり役に立ちません
>>727 どれぐらいかかるのか知らないけど、30秒以上かかるようなら
設計が悪いだけだと思うけどなぁ。
1億件のjoinとかでもないだろうし・・・・
一度実行して時間を計っておく。
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 環境下で作成しています。 よろしくお願いします。
LinuxのPostgreSQLのバージョンと、ODBCのドライバのバージョンは?
>>730 joinでもスループット重視とレスポンス重視で異なるよ
レスポンス重視だとネステッドループ使うとかそんな感じ
ただし、スループットは大きく落ちる
>>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プロバイダが存在するので可能だとはおもいますが・・・
>>736 ODBCでつないだこと無いけど、Ver8.1にVer7.03.02.08でつながるのか?
738 :
NAME IS NULL :2005/11/18(金) 13:53:33 ID:PzJh+s38
>>736 データソースでそのドライバを指定しているんですが
接続できています。
>>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だったよ。
function requires at least protocol version 3.0 機能は、少なくともプロトコル版3.0を必要とします
8.1からいろいろ変わってるみたいだからな。 psqlでもバージョン違いは苦しい。 pgAdminIIIも1.4にしないとね
742 :
736 :2005/11/18(金) 14:46:26 ID:PzJh+s38
レスサンクスです なるほど・・・とりあえずもっかいドライバ周り確認した方がよさげですね あとGUIツールも・・・ ありがとうございました。
SunがSolarisでPostgreSQLが正式サポート来たね まずはSolaris版を正式に出して 今後はOSにバンドルもされるそうだ
PostgreSQL 7.4 から、protocol version 3 を使うようになったんだよね?
>>744 そうだね。下位互換は維持されてるから接続は出来たんだね。
CGI+PostGresの環境で CGIにSQLを組み込みたいのですが、どうすれよいのでしょうか? 参考になるサイトなどがありましたら教えてください。
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 と、新規作成するのですか?
>>748 たまにその方法を知りたいと思うけど、基本的には
列指定してデータ取り出すのが普通なのであまり用がないんだよな('A`)
前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。
751 :
NAME IS NULL :2005/11/20(日) 09:32:51 ID:aQbjk/iW
>前後、なんてもん存在しない。ちゃんと並べ替え用のフィールド作ろう。 激しく質問の意味を取り違えている感があるが・・・どういうことか意味わからん
ああ、取り違えてたwwwwwwwwwww
いや、いいんすよありがとうっす まぁプログラム側では意識しないからいいものの DBツールとかで表示すると追加カラムが一番最後になるので なんか気持ち悪いんっすよね 自分で使うDBならいいんですが 業務で改修が入りカラム追加になったんです で、上の人間がやることなすことケチつける人で 仕様書とかも丁寧に書けば「ここまで詳しく書くな」雑に書けば「もっと詳しく」と言う人なんすよ 多分今回も、カラムが最後にあると なんか文句言ってくんじゃね-かなーと思って鬱
754 :
NAME IS NULL :2005/11/20(日) 16:29:08 ID:P2wr5H2F
>753 DROP/CREATE やることなすことケチつけてくる人なら鬱になる”必要が”ないじゃんw 意味わかる?
>>754 え?というと・・・?
ちょっと意味わかんない・・・
どの道言われるので
開き直れってことですか?
756 :
754 :2005/11/20(日) 17:17:08 ID:???
>755 開き直ると、トラブルになるので絶対やってはダメ。 ここまで書けばわかるよね?
>>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
のような表示なんですよね。
この結果を前提としているところがいくつもあって悩んでます・・・
>>761 結果が1日以下なら'HH24:MI'にするようCASEで切り替え。
>>762 ありがと。
やっぱ、そうなりますよね・・・
そうすると今度は、マイナス値の場合どうするか?とか、
いろいろcareしなければならなくなるんですよね。
やっぱり簡単には行かないんですねぇ。
ちょっと、別の場所でどうにかならないか、考えてみます。
ありがとうございました。
SELECT FOR UPDATEでロックされている行を 取得しないようなSELECT文ってどうやって書くの A B * A C ってあってほぼ同時に*の行を参照する2つの アプリケーションあった場合一方だけ情報とれて もう一方は空を返すようなことってできますか? うまく説明できんけど2つ同じ情報拾ってきて DELETEなりUPDATEするとおかしくなると思うんだけど こうゆう場合ってどうすればいいの?
>>764 言っていることがイマイチ理解できないんだけど、
同時に SELECT, DELETE, UPDATE 「できないようにするため」にロックかけるんでしょ?
2つ目のSELECT FOR UPDATEは、最初のやつの トランザクションが完了するまで待たされるよ。
ちなみに2つ目のSELECTに「FOR UPDATE」句が無い場合は 待たされなくて、1つめのトランザクション開始前の情報が 返される。
さらに SERIALIZABLE にしておけば、更新とオーバーラップしても問題ない。
つまり、排他制御関係を、もう一度勉強し直すべきだということだな、まじめな話。
770 :
NAME IS NULL :2005/11/25(金) 22:37:33 ID:4JCvO8XR
自分や信頼のおける少数以外にはデータベースの内容を閲覧させたくない場合、 パスワードで制限かける他にデータベース自体を暗号化して読みだしてもなんら意味をなさないように することはできますか?
一度やってみればいいとおもう。出来るんじゃないかと思う方法で。
md5やshaで暗号化しちゃいなよ大島
YOU、やっちゃいなよ
>770 信頼のおけるメンバーの方を増やしていけばいいんじゃね?
>>772 md5やshaは「暗号化」じゃないと何度言ったら…
最近はハッシュ関数すら知らないヤツが多いな
>776 YOU、だいじょうぶか?
>>775 復元できない暗号化なんてありえないからなぁ・・・
じゃあなんて言えばいいだろう? 『合言葉』か?
Digest=消化
やってみちゃったことがある俺ガイル>ハッシュ化データ格納 無差別にハッシュ化すると検索がめんどくさくなるので注意。 検索条件に該当するカラムがハッシュ化されてると、テーブルを全部セレクトして プログラムサイドでデコードしてから検索ってなる。
postgresql.conf cryptogram = true crypt_column_type = 'text,varchar' 後はpostmaster起動時に--crypt_key hogehoge
>781 これは、DBのデータファイルをダンプしても 内容がわからない様にするってことですよね?
>データベース自体を暗号化して読みだしてもなんら意味をなさないように つーことだな
普通に考えてだれでもファイルシステム触れる権限あるほうが問題じゃね?
通常ならpostgresユーザーしか触れないはずだしな
教えて下さい。 環境 サーバ 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側にも何か設定がいるのでしょうか? 何かヒントがあれば教えて下さい。よろしくお願いします。
>>786 とりあえずクエリーに問題が無いかチェック。
SELECT -> ループで UPDATE ……という具合ではどう頑張ってもパフォーマンス落ちるし。
788 :
786 :2005/11/30(水) 07:42:24 ID:???
>>787 ありがとうございます。
複数行の伝票データを3つのテーブル同時に更新するので、updateのループに
なっています。ひとつのUpdateが今の半分になってくれるだけでも嬉しいのですが
設定よりは、アルゴリズムを見直さないとならないと駄目という事ですかね。
a
>>788 トランザクションにしてる?
してるならどこからどこまでをはさんでる?
793 :
786 :2005/11/30(水) 11:24:53 ID:???
>>789 >>790 そう、いわれるだろうなと覚悟してました。
ソースに手を入れないで、設定だけで改善できないかと思ったのですが甘かったですね。
改めて調べたら、ODBCのキャッシュは「列」だそうで、65536も確保しても意味がないそうで、
今100〜500までちょこちょこ変化させているんですが、これでも全然速度に変化がありません。
クライアントのMTUまで調べちゃいました。
>>792 ソースを書いたのが私ではないので、ちょっと後で確認します。
>782 に対する質問の内容を把握している >784, 785 さんに質問です。 root は見れちゃいますよね? root だからダンプして内容みても構わないということには 必ずしもならないと思うのですよ。
rootって復旧とか含めて最高権限だから逆に見られないとまずいのでは?
>>794 誰でもrootになれるって状況がむしろ望ましくないのでは。
サーバの管理権限等をめんどくさがらずにユーザ毎に細かくsudoの権限とか設定するのが
理想じゃないかと。若干スレ違いな気はしますが。
そのマシンの管理者にも見られたくないってんなら 暗号化しかないだろうな。レンタルサーバ?
すいませんが質問させてください。 共有メモリの設定に関してなんですが、インストールした標準のバッファ容量って 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 と信頼関係がないということだ。
技術的な話しと運用の話しを切り分けられないのw
794必死だな
>802 794じゃないが切り分けできてねーじゃん >795と>796を800回読んでからカキコしなよ
ファイルを参照できるのと内容を理解できるのは違うと思う。。。
まあ、いくらファイルシステム上のデータを暗号化しようとも、 root様ならpostmasterプロセスのメモリを直接覗いて暗号キーgetとか 何でもありだからな。
まぁ実際レン鯖のrootがそこまで出来るスキル持っているかどうかは別だがw
>805 なるほどね〜
>>806 かりに持っているとして、わざわざそんなことをするとしたら、警察が
裁判所の令状を持ってきて調査しなきゃいかんような場合だろう。
ま、794が何をたくらんでいるのかは知らんけど、レンタルサーバー
なんか使うのはやめて、固定IPをもらって、いつでも根こそぎ破壊できる
サーバーを手元に構築したら? 通信も暗号化しようね。令状があれば、
プロバイダはパケットをダンプして警察に提出するぞ。
809 :
デフォルトの名無しさん :2005/12/03(土) 00:43:48 ID:pAMqxFb4
認定試験のCE silverとろうとおもうのだけど、取ってる人いますか? 社内での評価は未知数、Oracleのプラチナ持ってるけど、この資格も 難化する前に取っておこうかなと思ってます。
>808 想像力が香ばしいのぉw >809 典型的な(ry
クラッキングの脅威とか
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 となってエラーになります。 なぜ?
>>812 アプリのクラスパスに追加したほうがいいかと
pgAdminで「制約」から主キーやユニークキーを選択→リフレッシュすると、 右カラムにインデックス中の1番上のものとして表示される。 実害はないのかもしれないけれど、気持ち悪い・・・既出なのかも WinXP SP2 PostgreSQL8.1 pgAdmin III 1.4.0
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
>>817 update shoseki_tbl SET name='データ' where id=000101;
psql 使ってるなら、\h UPDATE とかで書式調べようぜ さらに、readline組み込んであれば、TABで補間できるぞい
su - postgres ってやったら could not open session ってなった。なんで?
Permission denied が could not open session の前に出てるなら、 Permission denied といわれているディレクトリのパーミッションを確認。 何も出てないなら /etc のパーミッションが変なのでは? 755 とかにしとけ。
すみません、まだ初めて間もないんですが教えてください。 外注で作ったデータベースを追加することになったんですが 外注の人が置いていったTeratermでアクセスして 日本語を入力すると消えてしまいます・・・ 日本語ってどうやれば入力できますか?
Postgres以前にDBがどういうものかわかってるのかな なんかしらないで触って壊しそうな感じがするんだけど
>>822 自分で触ろうとせずに、その外注をふたたび呼びなおすか
別の外注をさがしましょう。
>>822 日本語パッチあてたreadlineを組み込んでpsqlのリコンパイル
>>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文でレコードを削除してしまいました・・・ 元に戻す方法はあるのでしょうか? バックアップはとっておらず・・・ 誰かお助けください!
hba.confにhogehogeを追加する
>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
これに加えるってどんな感じなんでしょうか?
>>831 host all all 127.0.0.1 255.255.255.255 password passwd
だろ氏ね
>>828 pg_resetxlogで過去に戻してdumpする荒業を耳にしたことがあるが……。
834 :
NAME IS NULL :2005/12/13(火) 00:58:40 ID:tww26Ydt
>833 アリですか・・・!?
>822 pgAdmin使ったら。簡単だから。 自分でDB作ってゴニョゴニョ試してみたら。
836 :
NAME IS NULL :2005/12/13(火) 10:28:43 ID:61x5iL/O
pg_hba.confを変更した後ってpostgreの再起動だけでいいの? PCの再起動してたけど・・・
>>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
>>838 initdb --no-locale
このスレだけでも何度目だろう。
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させるにはどのような操作をしたらよいでしょうか?
PgAdminIII Ver1.4.0 Windows版 SQL開こうとすると落ちる。 PgAdminIII Ver1,4,1 Windows版 改善されてる。 素早い対応ありがとう。中の外国の人。 日本語版サイトのリンク先が1.4.0のままなのは(・A・)イクナイ。 日本語版サイトの中の人も、中の外国の人を見習ってください。
>>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の配列(要素数は一定ではない)で、配列内の要素の合計値を簡単に得ることはできますか?自分で関数でも書くしかないのでしょうか?
関数書けるなら関数でどうぞ、他に方法はありません 何よりも一般的にはRDBで配列使うようだと既に負けてるんじゃないかなって噂はない?
848 :
846 :2005/12/15(木) 16:06:30 ID:cPGS0hyY
>>847 とりあえずplpgsqlで関数書いて解決しました。
やっぱ配列使うと負けですかね?しかし、元になってるデータ(httpでテキストで取ってくる)の種類が数十個あって、それぞれの中に配列でデータが定義されてるんですよね。ものによっては3次元とか。とてもじゃないけど別テーブルになんてやってられんです。
>>843 同じ1.4.0でも、pgAdminIII単体だと落ちるけど、
PostgreSQL8.1本体についてくるやつは落ちないんだよね。
同じバージョン番号のクセに・・・・
>>848 >とてもじゃないけど別テーブルになんてやってられんです。
というところが負けなんです
851 :
NAME IS NULL :2005/12/15(木) 16:45:12 ID:QEoAR/CH
配列使ったこと無い。 どういうところが便利なのかさっぱりわからん。
>>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して 再作成すると復活しました。 なんかシステムデータが壊れたのかな。。。
書き込み中のデータを持ってきて中途半端だったんじゃないかな?
856 :
NAME IS NULL :2005/12/16(金) 11:29:56 ID:PTCRuCH7
初心者ですいませんが、 date型のフィールドの比較がうまくできないのですが WHERE hoge_date < 20040506 でhoge_dateフィールドが20040506以下である場合selectしたいのですがうまく動作しません。宜しくお願いします。
WHERE hoge_date <= '2004-05-06' とか? '06May2004' とかも使えるけど
'20040506' でも解釈するみたいだな。
859 :
856 :2005/12/16(金) 11:42:57 ID:PTCRuCH7
>>857 ハイフンとシングルコーテーションがなかったからか、正常に動作しています。
ありがとうございます。
ちなみにシングルコーテションがなくてもエラーにはならないのですが、
どういった意味でつけているのでしょうか?
860 :
856 :2005/12/16(金) 11:44:38 ID:PTCRuCH7
>>858 '20040506'でも正常に動作する事を確認しました。
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は新しいものになっている) バージョンの確認で新しいものが表示されるようにするにはどのようにしたらよいですか?
>>862 今実行している postmaster の場所は?
ps -ef|grep postmaster
とかで確認
って、psql内でのバージョンチェックじゃなくて psqlそのもののバージョンか・・・ which psql で、どのpsqlが起動するかチェック
>>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できません。
もちろんダミーでデータは入れてあります。
>>866 逆
startより前でかつendより後なんて存在しないだろう
逆じゃないのか?
こういう書き方もある WHERE 'today' BETWEEN hoge_start AND hoge_end
870 :
856 :2005/12/16(金) 18:05:01 ID:PTCRuCH7
>>866 >WHERE hoge_start >= 'today' AND hoge_end <= 'today'
穴が開くまでよーく眺めてみろ。
その上でbetween句を使え。
>>872 きっと気づくまで時間がかかったんだろ。
そっとしておいてやれ。
bitweenが句じゃないのも(ry
質問してもよろしいでしょうか。 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の設定などありましたらご教示ください。
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を使えるようになるように設定するのってどうしたらいいですか?
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を使えるようになるように設定するのってどうしたらいいですか?
MiracleLinuxはよくわからんがLinux系なら /etc/rc.d/init.d/ と services のオンオフ設定じゃないの? READMEとかINSTALLとかその辺に載ってるはずだよ
Linux系の起動スクリプトは ソースディレクトリ/contrib/start-scripts/linux にある。コレを/etc/rc.d/init.d/にリネームして入れて 起動するランレベルに合わせてごにょごにょすれば出来るんじゃね。 つーか、Miracleにバイナリパッケージは用意されて無いんかな?
>>873 わかるなぁ。
漏れもしょっちゅう
WEHREとかCOUTNってやるんだ。。。
>>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 マなら全角スペースはデフォルトでは日本語入力モードでもでないように
するもんじゃまいか?
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文って作れますか? わかる方、よろしくお願いします。
質問します。
環境は 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なのでしょうか?
長文での質問ですが、どなたかご教授お願い致します。
>>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は一人のみ。
>>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を振ってみれば。
もともとのループ処理でもそこそこ速くなるかも。
>>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で探してみましたが、やはりありませんでした。
>>896 WinXPそのもののFirewall設定はどうなの?
>>897 それは7.x以前もの。
899 :
896 :2005/12/20(火) 05:19:49 ID:???
FirewallにPostgreSQLが追加されていなかったので追加しました。 しかし、変わりませんでした・・・残念
>>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:???
さすがにそろそろ寝ることにします どうもありがとうございました
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
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です。
>>906 SQL文を文字列で生成して、EXECUTE 使ったらいけると思う
>>907 テーブル名に変数が使えないということですね。
EXECUTE INTOで同じことが出来ました。
ありがとうございます。
909 :
NAME IS NULL :2005/12/21(水) 16:04:33 ID:8BF8onPp
一度インストールして運用してたDBを別のDBにデータごとコピーしたいんですがどうすればいいでしょうか? OS入れなおしたせいで、ソフトは入ってない状況になってます ちなみにOSはwindows2kです インストール→フォルダをコピー とかでいけそうな気はするんですけど、誰か情報もってませんか
dumpしてるときの方法は知ってたのですが 急にOSが落ちて入れなおす羽目になったんです・・・
913 :
909 :2005/12/21(水) 16:51:32 ID:???
>>912 thx!!
どのフォルダ以下コピーすればいいですか?
>>913 data
あと、インストールパスも同じにした
今日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型で定義してます。
>>915 基本的に、バージョンは 0.1 違うだけでそのままでは使えない
ましてや、OS違えばだめだしCPU違ってもダメ。
同じOSでも、32bitと64bitでもダメ。
pg_dumpall > filename
でできたファイルを、
psql template1 < filename
とやれば、全体コピーは可能
オプションは各自調べてちょうだい
>>916 そのDBのEncoding は何かな?
あと、initdbしたとき、--no-locale つけたかい?
920 :
916 :2005/12/22(木) 10:50:50 ID:z5YQIXNM
encodingはEUC_JPです。 >あと、initdbしたとき、--no-locale つけたかい? してるみたいです。
>>920 んー、それだとその結果になる理由がわからんなあ
postgresql.conf の lc_messages = は 何になってる?
>>916 そもそも、count(*) じゃなくて * で表示させるとどれが該当する?
923 :
916 :2005/12/22(木) 11:35:12 ID:z5YQIXNM
>921 'ja_JP.UTF-8' でした。
>>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だとダメでした。
>>925 だからさ、
>>923 が 'C' になってないってことは
>>920 の
>してるみたいです。
ってのは間違ってる可能性が高い。
なので、もっかいinitdb しなおせ
927 :
NAME IS NULL :2005/12/26(月) 19:05:30 ID:eTqjW5sU
リリース毎の変更点概要が載っているページってないですかね? 7.4.7を使っていて、7.4.10にあげようか迷ってるんですが
929 :
915 :2005/12/27(火) 01:07:20 ID:???
遅くなりましたがレスサンクス。 なんとかできました。 今度はpostgresqlから得られた値の末尾にaがついて表示されるように なりました。面白いんですがなんか大変。
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
あるユーザに対して、全てのデータベースへのあらゆる権限を剥奪するにはどうしたらいいですか? 最終的には、そのユーザには一つのデータベースだけを扱えるようにしたいです。
>>933 コマンドで権限設定したら?
全部剥奪なら、削除したらいいと思うが
,へ \ | / ,ハ百 \ \ \ | / ム.只 /へ/) ./ ̄\ ∧_∧∩ )( ‐ ‐ ‐−──( ゚ ∀ ゚ )──−‐‐ =夫=_ .(*・∀・)7 ( ! ______ノ'""ゝ. \_/ フi三iヽ ゚ .冂つム゚_」 Y (_ ____) ':; | \ '─' ゜ ム_」」」」ゝ 人 ___) (__∠__ \| \ (,_,,ノ `ー´ ( '; (__________) ~':;,,. \ ,' . / .' ヽ (_ ,,;::'~ ~':::;;,,,_ / / ' \ヽ. __,,,,-‐''"~ ∧_∧ ( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄) '0 __,,..l⊂Z_).⊃! ( ´∀` )  ̄ ̄ ̄ ̄) (二二二二二...... 0 0Π0- ‐‐'''"" |;;:.:. ヮ . .:::;| ,べヽy〃へ ( ̄ ̄ ̄ 0Π0 HΠH ∩.∧_∧∩ ∧∧/ :| 'ツ' | ヽ  ̄λ_λ ̄ ̄ ̄ ̄ ∧∧ ̄ HΠH EEE 匸(´∀`;)フ (,゚Д゚,). o |=宗=! o | ( `ー´) ヮ (゚ー゚*) EEE |l|lil|ili| 瓜ゞッ=Lく ,くリ=ッ=[ゝ.__」「「「「L_.」 厂〉=ッ冂づ ヌ Oヮ⊂[]ヨ |l|lil|ili| ,,.<卅卅ゝ.__.,.,.,___.__.,.,.,(__)ヾZ)'_.,.,_じ(ノルハ)Jつ」」」」」⊂ソ.,_.,_.(入ム]つつ.__,L!__. (_」つ.,<卅卅ゝ,,.,, 〜ラッキーレス〜 2006年新年あけましておめでとうございます! さて、このレスを見た人は、コピペでも良いので26分以内に3つ以上のスレに貼り付けてください そうすれば今年中に、体の悪いところは全て治るわ好きな人に告白されるわ出世するわで大変なことです!!
936 :
NAME IS NULL :2006/01/05(木) 12:28:57 ID:0vbt5GF+
スルーしないで教えてください。 Access2000にてODBC接続でPostgleに接続をしようとして、 テーブルを選択してOKを押すと、”引数が無効です”とでて、 接続が出来ません。 ヘルプで調べると、 引数が無効です。(Error 3001) DLL のルーチンを使用する実行時に、DLL ルーチンに渡す引数に誤りがあります。正しい引数を指定してから、もう一度実行してください。 このエラーは、メソッドの引数の中で互いに排他的な定数を指定しようとした場合にも発生します。たとえば、OpenRecordset メソッドで引数 options に定数 dbConsistent と dbInconsistent の両方を指定した場合、このエラーが発生します。 でるのですが、意味がわかりません。 やさしい人、教えてください。
ヒント: ぬるぽ
938 :
935 :2006/01/05(木) 14:31:29 ID:0vbt5GF+
なんとなく意味がわかったのですが、 設定がODBCのどこをみてもわかりません。 一通り、チェックを入れたりしてみてみたんですが。。。
>>938 すれ違い気味だけど・・・ODBC設定するところからの
接続テストは成功すんの?
お約束だが・・・ ODBCドライバのバージョンとPostgreSQLのバージョン
8.1.2は何が変わったの? どこ見ればわかるかな? できれば日本語で。
8.1.2 * Windows版のDoS耐性を向上 * コミット直後のデータが失われるバグの修正(8.0以降に存在していた) * 幾つかの マルチバイト文字列に関するバグ修正 * 幾つかの COPY CSV に関するバグ修正 など。
>>942 二つ目のって発生する確率は高いのかな?
>>943 942 じゃないけど、ML や Web を見る限り低確率かと。
うーん、、、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取ってしまったので次スレ作ろうと思うのだが タイトルとかそのまんまでいいですか
間違い直す? PostgresSQLについて語ろう ↓ PostgreSQLについて語ろう
このさい一個づつ増やしていくって方向で PostgressSQL
>>956 乙。あれはあれで粋なスレタイだと思うよ。