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
0671nobodyさん
02/10/16 15:24ID:???0672super
02/10/16 15:49ID:o+8CpqDwcd /usr/local/pgsql/data
という内容の start というファイルを作成しましたが
$./start
しても実行されません。
0673nobodyさん
02/10/16 16:47ID:???0674AAA
02/10/16 18:46ID:ZpB3Pmml何も表示されません。
うまく動作したと思って
PWD してみるとディレクトリは
かわっていません
SOLARIS 2.6 ON SPARC です
0675nobodyさん
02/10/17 00:12ID:???0676nobodyさん
02/10/17 03:10ID:ychsNVf3こんな環境でjoinしまくりでselectを発行すると当然遅い・・・。
なので、カーネルをいじってソートメモリ増やしたりするが、
shm,semあたりがいまいちわからず・・・・。
Postgres用にメモリを最大限割り当てて、高速化を図りたいです。
shm,semあたりをご教授ください。なんとか高速化したい!!!
環境:
FreeBSD4.5
Postgres7.1.2
0677nobodyさん
02/10/17 10:07ID:???ある任意のテーブルの何行目を削除 みたいなことはできるのでしょうか?
(何行目というのを数字で与えるようにしたい)
0678nobodyさん
02/10/17 10:12ID:???postgresユーザのみrwxのはずなんだが。
ユーザー権限とかそんなんでないの? cd できないってのは。
0679super
02/10/17 12:54ID:eVO0i+anでlsすると
$ ls -al
合計 54
drwx------ 6 postgres other 512 10月 16日 15:51 .
drwxr-xr-x 9 root other 512 10月 15日 15:12 ..
-rw------- 1 postgres staff 4 10月 15日 15:13 PG_VERSION
-rw------- 1 root other 3848 10月 16日 12:30 backupposgtresql.conf
drwx------ 4 postgres staff 512 10月 15日 15:13 base
drwx------ 2 postgres staff 512 10月 15日 15:13 global
drwx------ 2 postgres staff 512 10月 15日 15:13 pg_clog
-rw------- 1 postgres staff 10006 10月 15日 15:13 pg_hba.conf
-rw------- 1 postgres staff 1250 10月 15日 15:13 pg_ident.conf
drwx------ 2 postgres staff 512 10月 15日 15:13 pg_xlog
-rw------- 1 postgres staff 3848 10月 16日 15:06 postgresql.conf
$
0680nobodyさん
02/10/17 16:51ID:???0682nobodyさん
02/10/18 10:15ID:???その「start」ってスクリプトはpostgresユーザー権限で実行してる?
もしそうなら、スクリプトの中身見せてみそ。
0683nobodyさん
02/10/18 11:12ID:kP3mYN+N復元したいのですが、セル内改行?の部分でエラーメッセージが
出たり出なかったりします。
psql:/tmp/hoge.dat:1111: invalid command \015
psql:/tmp/hoge.dat:1112: ERROR: parser: parse error at or near "fuga"
と「\015\012」がある行の次の行でエラーがでます。
pg_dumpのオプションは-c -d -x
「\015\012」があるすべての部分でエラーがでるわけでは
ないのです。
回避方法をご存知の方がいらっしゃいましたら、ご教授願います。
0684nobodyさん
02/10/22 22:50ID:JaiAlXbKウィンドウズにインストールしたいのですが、
参考になるページありましたら教えてください。
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スレッドを格納するテーブルはバチっと決めておいて、
レコードとしてスレッド格納するように設計すれば?
■ このスレッドは過去ログ倉庫に格納されています