PostgreSQL
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/09(水) 11:36ID:GHX.oCXo関連アプリケーション特有の話題は、以下のスレッドへ。
☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
0685nobodyさん
02/10/22 22:55ID:???この辺、どうよ?
http://www.mattsuan.jp/~intrasv/pstgresql_a_inst.html
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
とりあえず、手持ちのURLから。
0686nobodyさん
02/10/22 22:58ID:JaiAlXbKありがとうございます。
調べてはみたのですが調べろといわれるかと思いました。
みてみます。
0688nobodyさん
02/10/22 23:08ID:JaiAlXbKすいません。いまさっき興味をもったばかりなのでほとんど分かりません。
とりあえずリナックスにしようかと思いました。
0690Disca ◆4ENAfP6znE
02/10/23 10:34ID:beWxZTYkテーブルのすべての rows の数を取得したいのですが、
どうすれば良いのでしょうか
0692nobodyさん
02/10/25 18:22ID:jq5EHClSどうすればいいのでしょう?
また、同じくランダムにn個の行を取得するにはどうすればいいのでしょう?
0693nobodyさん
02/10/25 20:21ID:???0694692
02/10/25 22:20ID:???ども。
調べました。
SELECT * FROM foo ORDER BY RAND() LIMIT n OFFSET m;
(ランダムにm番目から、n件を取得。(OFFSET は0からはじまる))
ですね。どもども。
0695nobodyさん
02/10/26 11:59ID:Rc/ro/Gqいい方法はありませんでしょうか?
検索した結果を一時テーブルにして、それをorder byすればいいかと思ったけど、
うまくいきませんでした。
0696sage
02/10/26 12:03ID:???0699教えてくん
02/10/27 22:04ID:???ERROR: Attribute 'hogehoge' is of type 'timestamp' but expression is of type 'int4' You will need to rewrite or cast the expression
と怒られますた!
なんでですのん?
0700699
02/10/27 22:09ID:???0701699
02/10/27 22:13ID:???テーブル仕様変更したのに、sql走らせてなかった。
勘違いですた。
0702nobodyさん
02/10/28 20:00ID:EWIjH/IC社内からtelnet経由で直接アクセスしてきたクライアントのIPアドレスや時間帯を
記録したのですが良い方法はありませんか。(できれば、どのDBやテーブルに対してアクセスをしてきたかも知りたい)
postgres.conf(だったか?)に、log_connections falseという
項目があって、それをtrueにしたのですが、どこにもログが記録されている気配は
ありませんでした。。。何かやり方が悪いのでしょうか?
0703nobodyさん
02/10/28 20:10ID:???LedHatって聞いたことねぇな(w
IPなんかすぐ抜けるだろ?
それをDBに格納すりゃいいだけじゃねーか。
ポスグレ単体であれこれやろうとしてんのか?モシカシティ
0704702
02/10/28 20:31ID:???えーと、かなりどうでもいい細かい突っ込み感謝です(w
(RedHatLinux7.2ですだ)
>>ポスグレ単体であれこれやろうとしてんのか?モシカシティ
あれこれやるつもりはないですが、DBにアクセスしてきたログは、
DB側でとりたかったので。。いけませんかね?
ちなみに、初心者君ですいませんが、
>>IPなんかすぐ抜けるだろ?
のやりかたを教えてください(や、ほんとにすいません、わからんのです。ネタじゃなくて。
0705便乗君
02/10/28 20:41ID:???0706nobodyさん
02/10/28 20:56ID:???シーラカンス本持っていないなら買いましょう。
禿しく時間の節約になるYO!
ただ、>>702 の望みをかなえるのはちょっと難
しいかも。どのクライアントも、結局ローカル
から接続することになるから。telnet のログと
postgres のログを突き合わせるか、telnet を
やめて、直に postgres へ接続させるか…
0707nobodyさん
02/10/28 23:32ID:Uf/igqC30708nobodyさん
02/10/29 00:06ID:???0709nobodyさん
02/10/29 16:36ID:???ストアドプロシージャで動的にSQL文を生成できますか?
0710nobodyさん
02/10/29 16:47ID:XTgUUCFaできます。7.2からかな?
0711nobodyさん
02/10/30 17:36ID:eV7jEixT例えば、testというテーブルがあり、その中身は
no int,
data text
という二つのカラムがあり、no は数値型、dataはテキスト型です。
noカラムの値が「1」のレコードが3つより少ないなら
insert into test value(1,'hoge');
のSQL文を実行したいのです。
「3つより少ないなら」という文と上記SQL文を
一文で書く良い方法はないでしょうか?
別の言い方をすると、noカラムには同じ値のモノが3つまでしか
入れることができないようにしたいのです。
noの値によって「5つより少ないなら」等と変えたいので、
できればSQL文で制御したいのですが、可能でしょうか?
そもそもinsert文にwhere文や副問合せ等が使えるのかも
イマイチわからないのですが。
やはり複数のSQL文にしないとダメですか?
0712hmk
02/10/30 21:45ID:WX2r8AfdPL/pgSQLっていうんだっけ。それを使えばできるかも。
儂はOracleのPL/SQLなら使ったことあるが、PL/SQLならば無名ブロックを使って、
DECLARE
num number;
BEGIN
SELECT COUNT(*) INTO num FROM the_table WHERE no=1;
IF num<3 THEN
INSERT INTO test VALUES(1,'hoge');
END IF;
END;
こんなんでできたはず(昔のことなんで文法とかあやしいかも知れんが)。
PL/pgSQLでも同様にできるんでないの?間違ってたら須磨祖。
「一文で」というよりは、「一度の呼び出し」でという感じだが。
0713nobodyさん
02/10/31 02:50ID:???Cygwin上で動かす方法があると思いますが、
その環境で実際運用しているケースってあるんでしょうか?
0715nobodyさん
02/10/31 21:26ID:???遅レスだが、誰も答えてないみたいなので。
シェルスクリプトのプロセスの生成、実行、破棄の過程をよく考えれば理由は自ずと分かると思うが、
alias start='cd /usr/local/pgsql/data'
でお望みの結果が得られると思う。
詳しくは、シェルスクリプト関連のスレへ。
0716AAA
02/10/31 21:54ID:qzNXYl3VPostgresql の解説書でシーラカンス本って、Oreilly から
出ているやつですか?
0717nobodyさん
02/11/01 02:26ID:yeaPQaRo[postgres pgsql]$ ps aux | grep post
postgres 2000 0.0 0.4 5056 840 ? SN Oct31 0:02 [postmaster]
postgres 2661 0.0 0.0 4916 0 ? SWN Oct31 0:00 [postmaster]
postgres 3479 0.0 1.1 5072 2308 ? SN Oct31 0:00
/usr/bin/postgres
postgres 3482 0.0 1.1 5072 2308 ? SN Oct31 0:00
/usr/bin/postgres
root 13094 0.0 0.5 2120 1056 pts/0 S 02:00 0:00 login --
postgres
postgres 13095 0.0 0.4 1692 924 pts/0 S 02:00 0:00 -bash
postgres 13624 0.0 0.3 2324 688 pts/0 R 02:07 0:00 ps aux
postgres 13625 0.0 0.4 1692 924 pts/0 R 02:07 0:00 -bash
0718ois\\\
02/11/01 08:22ID:ECdYK2+dThank you
postgres
のuser directory /home/postgres/
のどれかのファイルに書くのですね
0719質問age
02/11/01 11:02ID:W+9xVgU/何なのでしょうか?
削除してもオッケー?
-rw------- 1 postgres postgres 16777216 10月 31 12:52
0000000000000000
0720nobodyさん
02/11/01 16:48ID:???アクセス権限はありますか? それともそのデータベースに
アクセスできるユーザなら、誰でも任意の操作ができるので
しょうか?
>>719 消しちゃダメみたい。
http://www.postgresql.jp/document/pg721doc/admin/wal-implementation.html
http://www.postgresql.jp/document/pg721doc/admin/wal-configuration.html
別に増えていくわけじゃないよね。シンボリックリンクを使えば、
別の場所へ持って行くことも可能らしいです。
0722これのことだと思われ
02/11/02 13:52ID:???技評でつ
0723nobodyさん
02/11/02 16:47ID:???pg_xlog以下は、トランザクションログ(Write Ahead Log)です。
更新を行うときにDBのページファイルを直接いじるのはコストがかかるので、
一旦WALにシーケンシャルに書き出し、
ページファイルへの反映は非同期に行います。
WALファイルは不要になれば(=WALの中身がページファイルへ反映されれば)、
自動的に削除されます。
なので勝手に消すのは(・A・)イクナイ!!
シンボリックリンクで他に流す場合には、ファイル単位でなく
pg_xlog ディレクトリそのものをどっかに飛ばしてください。
07247.2.3
02/11/02 22:52ID:ucdsOWFjPostgreSQLでは複数のプロセスが動いています。
postgresはいわゆるサーバデーモンみたいなもの。
postmasterはクライアントごとにpostgresからクライアントごとに
fork()されて、実質の処理を行う。
以上
0725nobodyさん
02/11/04 02:58ID:zPFPSFhP一番詳しく解説されているのはどれですか?
因みに自分が使っているPostgresのバージョンは7.2.3です。
0726nobodyさん
02/11/04 04:58ID:???マニュアル。
0727nobodyさん
02/11/04 12:21ID:???最近オライリーから日本語版が出た Postgres 本を
ちょっと立ち読みしたけど、結構 PL/pgSQL の解説
が詳しかったような気がする。
http://www.oreilly.co.jp/
あの表紙は、マンモスなのかな? PHP の本と混同し
そうなヨカン。
0728
02/11/04 22:39ID:B1KD5qMHこれって空ファイルをUPしてもダメですよね?
DBあぼーん?
0729nobodyさん
02/11/04 23:25ID:EX+F+q+xご存知でしたら教えてください。cygwin用パッケージも
ダウソしたんですけど、通常書いてあるような、手順踏んで
も立ち上がらないんですわ。
0731pg_log
02/11/05 11:25ID:e5LPgkr8タイムスリップとは?
バックアップから復旧したってことですか?
0732nobodyさん
02/11/06 03:26ID:???pg_logはトランザクションの状態を保持しているログファイルですんで、
消しちゃうと、以前のトランザクションの状態を忘れちまいます。
きちんとシャットダウンとかできてれば問題ないんですけど、
障害後とかにpg_log消しちゃうとcommitされてたはずのトランザクションが
DBに反映されてなかったりするかもしれません。
通常は、postmaster止めるときには全トランザクションが終了している
はずなので、あまり問題はないのですが。
運用中に消しちまったなら、それはそれでマズいですね。
特にトランザクション中なら。
0733pg_pconnect
02/11/07 14:59ID:???「pg_pconnect では、スクリプトが終了してもデータベースの接続を張りつづけます(pg_close が呼ばれれば切断してします)」とありますが、
PHPマニュアルの「pg_pconnect」には、
「pg_close() は、 pg_pconnect()によりオープンされた持続的接続は 閉じません。」と明記されてます。
記事が間違っているわけですよね??
0734733
02/11/08 10:47ID:eJxPn4HTPHPの話題ですた。
0735AAAA
02/11/08 14:06ID:P3hOvOBMなぜTelnetでアクセス??時代遅れもいいところ
ssh でアクセスしましょう。 REdhat にssh が
入ってなければ、CD-2 にはいってますので、インストールして下さい
Windows からRed Hat へのssh でのアクセスは
ssh でグーグル検索すると、解決できます。
0736nobodyさん
02/11/08 20:06ID:???http://www15.xdsl.ne.jp/~vfr/debian/magazinedb/postgresql-setup.html
例えば、field01〜field03のフィールドを持つテーブル"Sample"があったとします。
フィールドのどれかが”猿”という文字を含んでいるレコードを検索するには
select * from Sample where
field01 ~ '猿' or
field02 ~ '猿' or
field03 ~ '猿'
;
とすればよいかと思いますが、
これだとフィールドが増えたとき比例してsql文も長くなってしまいます。
何か上手く省略する方法はないものでしょうか?
whereの対象となるフィールドを"全て"と指定する方法が
あれば便利だと思うのですが・・・
0738nobodyさん
02/11/12 19:42ID:???不定カラムを指定する方法は知らんけど・・・
where field01 || field02 || file03 ~ '猿'
カラム数に比例して長くなることには変わりないが多少は短くなる。
つーのではダメ?
0739nobodyさん
02/11/12 20:34ID:???設計からやり直した方がいいと思います。
パフォーマンスが劣化するのに比べれば、
多少SQL文が複雑になるのなんて問題ではないです。
そういう設計をしていると、
データが蓄積されて止められなくなったときに、
パフォーマンスが劣化して
完全に使いモノにならなくなる可能性が高いです。
0740nobodyさん
02/11/13 10:10ID:Ys/0saOjSQLで動的にテーブルを作成しているのですが、
テーブル名の検索は、出来ますでしょうか。
単純な質問ですがよろしくお願いします。
0741nobodyさん
02/11/13 12:38ID:???0742nobodyさん
02/11/13 20:29ID:???0743737
02/11/14 11:38ID:???>738
その書き方いいですね。
SQLかなりシンプルになりますね。
いただきます。
>739
某企業の製品のWebカタログ用DBなんですけど
完全フリーワードで殆どのカラムを対象にした
テキスト検索をしたいということなので、いっそまとめて
全カラム指定ができればと思ったのですが、
やっぱり738さんのように、カラムは指定した方がいいですね。
お二人とも助かりました。ありがとう。
っていうかもっとマニュアル読まないといかんなと反省。
0744737
02/11/14 11:39ID:???0746nobodyさん
02/11/18 16:05ID:hHx05UgUキーワードを付けてるわけじゃなさそう。。。。
0747nobodyさん
02/11/19 23:11ID:???0748nobodyさん
02/11/20 17:09ID:9OjQWVpD0749nobodyさん
02/11/21 10:19ID:T0eOANSLユーザー「postgres」でtar玉を解凍し、./configureしようとすると
> ./configure: /dev/null: 許可がありません
という表示がでてしまいconfigureが出来ない状態です。
どなたか解決策を教えて下さい。
0750nobodyさん
02/11/21 20:35ID:???0751749
02/11/22 08:28ID:VQdZpxGf初心者なので…そのメッセージが理解できないんです。
0752nobodyさん
02/11/22 17:44ID:hcJNBN1x0754nobodyさん
02/11/24 14:16ID:jX5yz0lFpsqlで接続できなくなってしまいました。
pg_hba.conf は、ローカルシステム上のすべてのユーザーに
許可するようにしているはずなのですが...
解決策をご存知でしたら教えてください。お願いします。
psql: could not connect to server:
対象のコンピュータによって拒否されたため、続できませんでした。
Is the server running on host localhost and accepting
TCP/IP connections on port 5432?
0755nobodyさん
02/11/24 14:21ID:???どうせ、pg_hba.confで設定してないか-iオプションついてないんだろ。
0756nobodyさん
02/11/26 05:08ID:9GlaXfXk(Oracleならたしかったんだけどな。。。)
0758746
02/11/28 11:50ID:oGIU5VGKうーん まだ個人が作れるものじゃないのかなぁ・・・・・
キーワード付けるしかないのか・・・・・
0759nobodyさん
02/11/28 16:49ID:???0760nobodyさん
02/11/29 14:44ID:???0761nobodyさん
02/12/03 13:48ID:mw59SOfbNew.カラム名 とか Old.カラム名 でデータの取得をする時、
カラム名をテキスト型の変数から指定したいと思っています。
例えば、下記のような場合、
column_name varchar(50) := ''data_name'';
・・・↓
new.column_name;
のように指定したいのですが、column_nameを変数ではなく
フィールド名として認識します。
これを、フィールド名として認識させるには
どうしたらよいでしょうか?
PostgreSQL 7.2.3を使っています。
よろしくお願いします。
0762761
02/12/03 13:50ID:???column_nameを変数ではなく
フィールド名として認識します。
変数の値をフィールド名として認識させるには
どうしたらよいでしょうか?
0763?Sメ
02/12/04 12:45ID:4lhjBjYkのデータベースと、教員の受け持つ授業科目のデータベースがあります。
この2つのデータベースから教員のプロフィールに授業科目を加えたものを
つくりたいと思っていますが、うまくできません。
select .... from profile, kamoku
where profile.family_name='*****'
and profile.first_name ='*****'
and ????????????????????
???????????のところで、
うまくプロフィールの方で限定した教員名で科目の方の教員名を
限定したいのですがどうしたらいいでしょうか?
0764761
02/12/04 13:07ID:???テーブルの構造がわからないと、どうしたらいいかなんて
説明できないです。
0766761
02/12/04 17:22ID:???いやぁ〜副問い合わせがわかるレベルならこんな質問しないでしょう。
副問い合わせ使わなくてもできるかもしれんし。。。
で、ベテラン教師さん、761の質問教えてくださいよー
0767nobodyさん
02/12/04 21:07ID:4d678Rrg2ch型の掲示板をDBで実装(?)するときに、1スレッド1テーブルで、
スレッド一覧、みたいなテーブルを一つ持つ。
っていうのが、全部を一つのテーブルに入れるのとの、欠点(遅くなる)
とかって何なのでしょうか?
できれば、スレッドごとにテーブル、にしたいんですけど。
0768nobodyさん
02/12/04 21:41ID:kMXe/HJpスレッド増えたらテーブルも生成すんの?
0769767
02/12/04 22:43ID:4d678Rrgまずいかな。。
0770nobodyさん
02/12/04 23:33ID:kMXe/HJpスレッドを格納するテーブルはバチっと決めておいて、
レコードとしてスレッド格納するように設計すれば?
0771767
02/12/05 00:07ID:6rvWMyhf最終的には、ツリーっぽいデータ形式にしたい。(スレッドの中にスレッド)
だから、レコードに詰め込んでいくと苦しくなりそう。
で、ばしばしテーブルを増やすことは、無駄なこと、なのかな??
ある程度大きくなることが期待されないと、読むときの効率が悪くなる。?
具体的には、テーブルの生成によるオーバーヘッドみたいな物とかは、存在するのか。
0772nobodyさん
02/12/05 00:26ID:vXkLaZQHそのために、DB設計とか、スキーマ設計ってものがあるんだから。
テーブル内で、あれこれやるのはいいだろうけどさ。
商用プロジェクトだったら、必ずDB設計書を書くだろ。
動的に生成されるテーブルがあるなんて、あんまり聞かないぞ。
0773nobodyさん
02/12/05 00:40ID:6rvWMyhf他にちょうどいいのを探すか・・
0775nobodyさん
02/12/05 01:06ID:Ejjyn6K+正規化していないのがばれまくり・・・
0776nobodyさん
02/12/05 01:11ID:vXkLaZQHだから、メンテできなくなるDBが多いんだよ
0777nobodyさん
02/12/05 01:15ID:???記事の場合は題名と日付と投稿者と本文しかありえないんだから、テーブルいくつも作っちゃだめ。
0778nobodyさん
02/12/05 01:29ID:???これは、田舎のひなびた小さな学校のHPを100万ヒットの
人気HPにしてあげようという運動です。現在のターゲット校は上記です。
多くの皆さんクリックしてあげて下さい。
HPに飛んだら、2,3回更新していただくと、もっとありがたいです。
どんどんコピペして他の板にまいてください。
http://www.KissLoveTOCO.com/
0779nobodyさん
02/12/05 01:56ID:6rvWMyhf0780名無しさん@Emacs
02/12/05 04:53ID:???スレタイにスレID振ってカキコにもスレID振ってjoinつーのが
普通の設計だべ?多分。
0782nobodyさん
02/12/05 11:27ID:???別んとこにsequenceだけ持っておく、というのもアリかも。
0783nobodyさん
02/12/05 16:31ID:zuT0nBpDスレタイテーブルに最終番号をつけといて
BEGIN;
SELECT 最終番号 FROM スレタイテーブル;
INSERT INTO カキコテーブル(スレid, 最終番号 + 1, メッセージ, ...);
UPDATE スレタイテーブル SET 最終番号=最終番号 + 1;
COMMIT or ROLLBACK;
うちはこうしてる。
>>773
SQLだけでもできるけどメチャクチャ遅くなる。
メモリに読みこんでバイナリツリーかな。
レコードに親番号が入ってれば何とかなるよ。
0784nobodyさん
02/12/05 18:09ID:???CREATE GROUP
は使えますか?
CREATE GROUPの行でエラーになるんですが、
原因の特定がうまくできないもので。。。
使えるか使えないかだけでも、わかる方いらっしゃいませんか?
■ このスレッドは過去ログ倉庫に格納されています