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
0628nobodyさん
02/10/01 00:33ID:wXqFyCgz> ロジック(今回はJSPだが)で実装するしかないのかよー
UNION 使えばごまかせる。
0630608
02/10/01 01:57ID:B9rqrzrNえっ? どうやって? 教えてプリーズ!
副問い合わせが使えるなら思いついたコトあるんだけど、これもダメだとなるとちょっと思いつかない。
……以下に今まで恵まれた環境にいたかってコトだよな、これ(T_T)
0631608
02/10/01 01:59ID:B9rqrzrNExecSubPlan: null value returned by expression subselect
ってどんなエラー? ……「expression subselect」って、だから副問い合わせなんかつかってねーっつーの!(T_T)
必要ならSQLあげますが、まずはどんな(場合に出る)エラーか教えてくださいまし(T_T)
0632582 ◆6C3D/kPs
02/10/01 03:36ID:???0633582 ◆6C3D/kPs
02/10/01 03:41ID:???つーか、google検索すりゃトップに出るやん。
0634608
02/10/01 03:50ID:B9rqrzrN英語ページは回避してました(^^; で、自動翻訳……
バグか? バグなのかっ?(T_T) どーすりゃ回避できるんだっ?!
……勘弁してくれ……(涙)
0635627
02/10/01 07:11ID:rRTf7Iurアドバイスありがとう。
やってみるす。
0636nobodyさん
02/10/01 11:41ID:EVd52m24テーブルA、テーブルBがあるとして、inner join だとAとB、両方にある行しか出ない。(SQL1)
そこでサブクエリーをつかって、Aにあって、かつBにないものを抽出。(SQL2)
SQL1 union SQL2 とすると、outer join したのと同じ結果になる。
詳しくは数年前のメーリング・リストの記事を参照。同じネタ出ていたよ。
0639627
02/10/01 21:23ID:???てことはやっぱCLASSPATHがおかしかったのか。。。
CLASSPATHは入念にチェックしてたのにな。
0640608
02/10/02 01:19ID:9gZ3jv4a>>617&>>618のとおり出巣。このとおりに打ってこのエラーが出る出巣。もちろん、
SELECT DISTINCT TEL FROM users_pre WHERE TEL Like '03%'
でエラーが出ないことは確認してある出巣(T_T)
0641hmk
02/10/02 01:42ID:???SELECT COUNT(*) FROM users_pre u WHERE tel like '03%' AND NOT EXISTS(SELECT * FROM users_pre WHERE tel=u.tel AND oid<>u.oid);
こういうのもたぶん駄目なんだろうな。。。
上手い問い合わせはないもんでしょうか。
0642hmk
02/10/02 03:46ID:???SELECT ... FROM (SELECT ...); のように、
FROM句にSELECTが来る問い合わせをインラインビューと呼び、
これはすべてのRDBMSで実装されてはいないらしい。
ちゅーことは、>>641のような相関副問い合わせなら通りそうなんだけど。。。
儂はPostgres持ってないんで試せまそん。誰かやってよ。
0643nobodyさん
02/10/02 05:35ID:TiRO3wLQ0644nobodyさん
02/10/02 18:05ID:???”年月日”だけをひっかけて件数を取得したいのですが
何か手はありますでしょうか?
LIKEでやってみたのですがひっかかりません。
0646644
02/10/02 18:27ID:???select * from テーブル名 where date(timestamp型)= '2002-10-02';
上記でできました(泣)
ありがとうございます。
0647nobodyさん
02/10/05 12:51ID:2T2tvBuJ通貨型のmoneyを使ってみたのですが、
サンプルデータとして'123456789'と入れると
($5,392,229.88)
に化けました…。
なぜなんでしょう。
どうやって入力すればいいのですか?
教えてください。
0648nobodyさん
02/10/06 11:14ID:???桁あふれ。
http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/1997Nov/msg00092.html
0649nobodyさん
02/10/06 20:35ID:YiJCOGQBSELECT SUM(カラム) as total FROM テーブル;
みたいなことできないでしょうか?
0651649
02/10/07 23:51ID:AXMG8FcF0652nobodyさん
02/10/08 11:18ID:???SELECT COUNT(*) FROM meinDaten;
count
-------
0
(1 row)
アツカウベキデータガナイノデイミガナイ、鬱だ氏脳。
0653名無しさん@Emacs
02/10/08 13:59ID:???> mein
ちゅースペルが気になる。
0654nobodyさん
02/10/08 14:38ID:???その後のデータも含めて見てみれ。
meinDaten
つまり、mainDataのドイチュ語版だろ。
Ich bin mein daten !
0657nobodyさん
02/10/09 07:55ID:???0658nobodyさん
02/10/09 10:49ID:???int型のフィールドに対して
''をインサートを実行すると自動で0が入ってしまうのですけど
''のままインサートできないものでしょうか?
0659nobodyさん
02/10/09 10:50ID:oibqlApD0661652&655
02/10/09 13:56ID:???You can't insert NULL STRING into int-type field.
It's でーべーの基本やね.
As >>660 said, using NULL value instead is recommended.
0663nobodyさん
02/10/10 02:39ID:dij3CJ32こんな中途半パンパなネタでもないスレタイトルが
でてきてしまうほどここは低下してしまったのか。
なんて。思ったり。
CGI VS PHP!
ワラェネェ。
0664nobodyさん
02/10/10 02:39ID:dij3CJ320665anonymous
02/10/15 15:35ID:6HlJOXo9#postmaster -D /usr/local/pgsql/data
とすると、下記のエラーが出ます
できるだけ、OSのパラメータはいじらずにこれを回避させたい
のですが、どうすればいいでしょうか?
IpcMemoryCreate: shmget(key=5432001, size=1441792, 03600) failed: Invalid argume
nt
This error usually means that PostgreSQL's request for a shared memory
segment exceeded your kernel's SHMMAX parameter. You can either
reduce the request size or reconfigure the kernel with larger SHMMAX.
To reduce the request size (currently 1441792 bytes), reduce
PostgreSQL's shared_buffers parameter (currently 64) and/or
its max_connections parameter (currently 32).
If the request size is already small, it's possible that it is less than
your kernel's SHMMIN parameter, in which case raising the request size or
reconfiguring SHMMIN is called for.
The PostgreSQL Administrator's Guide contains more information about
shared memory configuration.
0666nobodyさん
02/10/15 19:04ID:0ZpQ3Voy解決方法、メッセージに出ているよね?
reduce PostgreSQL's shared_buffers parameter (currently 64) and/or its max_connections parameter (currently 32).
0667login:Penguin
02/10/15 19:38ID:???I'll change parameter of buffer.
thank you.
0668anonymous
02/10/16 08:44ID:o+8CpqDw具体的にどのファイルのパラメータを変更すればいいのでしょうか?
0669nobodyさん
02/10/16 12:40ID:???0670super
02/10/16 15:19ID:o+8CpqDwというコマンドをスクリプトを作って実行したいのですが
上を書いたファイルを作成して$chmod +x start
$./start
してもchange directory されません。
どうすればいいでしょうか?
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 の本と混同し
そうなヨカン。
■ このスレッドは過去ログ倉庫に格納されています