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
0176名無しさん@お腹いっぱい。
02/02/06 22:01ID:SjV/7aoMcron環境でPATHが通ってないと思われ。
man 5 crontabして環境変数を追加すれ。
0177名無しさん@お腹いっぱい。
02/02/07 00:46ID:f6G5y4rdRingServer にリンク張るときは、ftp.ring.gr.jp を指定するのが原則。
ftp://ftp.ring.gr.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz
0178名無しさん@お腹いっぱい。
02/02/07 01:11ID:???ftp.t.ring.gr.jpにすると自動で近いところに振り分けてくれるみたい。
0179hogehoge
02/02/07 18:14ID:Qub1OJU0./configure --enable-multibyte=EUC_JP --enable-syslog \
--enable-readline --with-gnu-ld=no --with-maxends=16
だとmake checkでvacuumdbがコケるのは漏れだけだろうか。
まだ共有メモリが足らんのかなあ。
MLに投げるのは怖いよ。
(((゚д゚;))))ガクガクブルブル
0180名無しさん@お腹いっぱい。
02/02/20 07:14ID:???basenameとかsedって普通 /usr/bin あたりに無いか?
そこにPATHが通ってないんなら、他のcronのコマンドもエラー出ないか…?
スレと関係なくてスマン>ALL
0181名無しさん@お腹いっぱい。
02/02/21 00:08ID:???ttp://www.jp.postgresql.org/postgresql.mp3
だそうです。
0182名無しさん@お腹いっぱい。
02/02/21 00:35ID:???http://www.jp.postgresql.org/postgresql.mp3 が公式発音なのね。
ぽすとぐれす きゅーえる か。
ポ にアクセントね。
0183名無しさん@お腹いっぱい。
02/02/24 21:22ID:QRKHUR9ainitDBできんかった・・・
local1_template1.sourceが行方知れずだと言われて・・・
パスの設定とかは問題なし。
同じ現象に出くわした人、いる?
0184sage
02/02/25 00:50ID:???知人から"軽ーく"聞いた話だと、もとからpostgresが入ってただか
入れたのを忘れたのか知らんが、それが邪魔してそんなメッセージ出た
とか聞いたような気がする。
ただ、よく聞いてなかったし、聞き流したんで違ったらスマソ。
0185名無しさん@お腹いっぱい。
02/02/25 01:32ID:???それよくでるよ。
一度徹底的にPostgres関係のファイル掃除して改めて入れ直すしかないと思う。
0186名無しさん@お腹いっぱい。
02/02/25 15:14ID:???http://www.softkoubou.co.jp/
ソースコードジェネレータがようやくデモ版を動かせるみたい。
0188nobodyさん
02/03/08 20:10ID:+DqcBvRVシフトJISで保存したタブ区切りのテキストファイルを
copyコマンドで登録しているのですが、うまくいきません。
以下のようにclient_encodingをSJISにしてみてもダメでした。
set client_encoding to 'SJIS';
\copy hogedb from /tmp/hoge.txt
いつもはEUCコードのファイルなので問題なく登録できています。
シフトJISのファイルをcopyすることはできないのでしょうか?
0189nobodyさん
02/03/08 22:25ID:???trust教える奴には「氏ね」といってやろう。
0191nobodyさん
02/03/09 16:09ID:???PHPからpg_connectで接続するとき、他人の作ったDBに
その人のユーザ名を user= で与える(パスなし)と、
その人にしか権限が与えられていない追加・更新が
出来てしまうのですが、これを防ぐ方法はないのでしょうか?
よろしくお願いします。
0193nobodyさん
02/03/09 18:52ID:???管理者がlocalからの接続を"trust"と設定していると思われ。認証方式
をパスワード認証に変更してもらわないとダメ。
0194191
02/03/09 22:29ID:???お答え、ありがとうございます。月曜日にでも管理者に相談してみます。
ところで、仮にパスワード認証にしたとして、
pg_connect("user=■■, password=□□");
のとき、直に書いて、もしこれを他人がコピーして、他人がその人の
エリアに設置した場合、やっぱり接続されてしまうもんなんですか?
0195nobodyさん
02/03/09 22:34ID:bvBGbCGY中のデータ設定がEUCで設定されているからであ
$ export PGCLIENTENCODING=SJIS
show client_encoding
\g
NOTICE: Current client encoding is SJIS
0196193
02/03/10 11:19ID:???うん。接続されちゃう。それがパスワード認証。
PHPで可能か知らないけど、スクリプトのパーミッションを711にしても
動作するなら他人にパスワードを見られるリスクは減らせるね。
0197nobodyさん
02/03/10 22:27ID:CbM1jE6Zどのように書けば良いのでしょうか。
0200nobodyさん
02/03/11 01:09ID:???postgres
>>199
とってます。
何とか自分で解決できました。聞いておきながらスマソ
WHERE TO_CHAR(CURRENT_TIMESTAMP, ''J'') = TO_CHAR(DATE, ''J'') AND
(TO_NUMBER(TO_CHAR(CURRENT_TIMESTAMP, ''SSSS''), ''999999'') -
TO_NUMBER(TO_CHAR(DATE, ''SSSS''), ''999999'')) < (DIFF_MINUTE * 60)
こんな感じでユリウス歴に変換して行いました。
UNIX時刻に変換出来るのが一番良いんだけど無いみたいだし。
0201nobodyさん
02/03/12 14:01ID:???ハイフン無しの数字で検索したいんだけど、
どうすりゃいいんでしょ。
create table tel(
name varchar(100),
tel_no varchar(16)
);
select * from tel;
name | tel_no
-----+---------------
aaaa | 03-3333-1111
bbbb | 03-3333-2222
cccc | 03-3333-3333
Webのフォームからは、0333331111と入力して検索したい
んですが、どんなクエリにしたらいいですか。
0202nobodyさん
02/03/12 14:14ID:???あらかじめ検索用にそういうデータ作っておくのが一番かと。
046-6xxと
04668-2xを、どう区別するの?とかいろいろ問題出そうだから。
0204191=194
02/03/12 20:48ID:???遅くなりましたけど、お答えありがとうございました。
701にしてFTPからでも見られないようにしました。
責任者曰く、テスト的な導入だからそういう設定はしていないでした。
将来的にするそうです。
0205名無しさん
02/03/12 22:43ID:???0206.
02/03/13 02:31ID:???SELECT DISTINCT でなくて、実際に行を削除したいのです。
BEGIN;
CREATE TABLE temp AS SELECT DISTINCT * FROM table;
DELETE FROM table;
INSERT INTO table SELECT * FROM temp;
DROP TABLE temp;
END;
なんてしないとダメなんでしょうか?
0207nobodyさん
02/03/13 16:51ID:JEuVnqmD0208nobodyさん
02/03/14 06:59ID:k3DW28WHで、それをphpから読み出したいんだけど?
0210nobodyさん
02/03/14 19:18ID:fh47mHavPHP マニュアルと、Postgres のマニュアルを読もう。
読み出しについてだけヒント。
SQL はトランザクションブロック内に。
pg_loexport() でSQL 実行結果から切り出す。
0211nobodyさん
02/03/14 21:43ID:k3DW28WH>>209さんありがとうございます。
マニュアル読んでも、よく解らなかったので、ラージオブジェクトを
扱っている書籍等、ありましたらお教えください。
ってゆうか、今INSERTの所でつまずいています。
0213nobodyさん
02/03/15 19:01ID:UO4e/HO0Postgres7.2なんですけど
createdb test
でデータベースtestをつくり
psql test
として
create user hoge with password 'hoge'
としてユーザhogeを作成しました。
この状態でCommonSQLEnvironmentで接続しようとすると
認証に失敗して接続できません。
ユーザ名hoge、パスワードhogeです。
ちなみにpg_hba.confは次のようにしてます。
host all 192.168.5.11 255.255.255.255 crypt
IPはもちろん自分のIPです。
何かとてつもない勘違いでもしてるんでしょうか?
0215nobodyさん
02/03/15 20:53ID:pbklnejVこれです。
http://www.hi-ho.ne.jp/tsumiki/
0219nobodyさん
02/03/16 14:11ID:???[1] FATAL 1: Password authentication failed for user "hoge"
としか出てません
0221nobodyさん
02/03/17 14:52ID:bGzRpwXXで、ユーザー名(text)は大文字/小文字区別しなくて重複させたくないので、
(たとえば、"Hoge"がもう存在したら"hoge"も"HOGE"も弾きたい。)
select username from userdata where username ~* '$username' で
重複を探しています。
usernameに+や?や*を使った場合エラーが出てしまいます。
あらかじめPHPのquatemetaでバックスラッシュはつけてあるのですが…
なんかうまい方法はないものでしょうか?
0222nobodyさん
02/03/17 15:06ID:???>usernameに+や?や*を使った場合エラーが出てしまいます。
使用禁止にすりゃいいじゃん。ダメ?
0223nobodyさん
02/03/17 15:16ID:???0224221
02/03/17 23:43ID:bGzRpwXXどうもありがとう。quatemetaはquotemetaでした。
>>222
usernameといっても、ニックネームみたいなもので
実際外人さんなんかでは記号使いたがる人もいるんで、
できれば制限はつけたくないんです。
>>223
これで使えそうです。日本語でも大丈夫ですよね?
(自分で試してみた範囲では特に問題なさそうでしたが)
0227nobodyさん
02/03/20 10:54ID:txl31ITf「物理的に」っつー意味が良くわかんねーのだが。
デリートフラグが付いたものを、物理的にデータファイルから消す、という意図なら、
バキュームするしかないだろう。
>206のやりかたでも、postgresの仕様では「物理的」には、削除できないと思われ。
DISTINCTをつかって取得されるデータセットの上で、重複行を見えなくする(一つ
にまとめる)ことを例えば「論理的に削除」と呼ぶとして、これに対しての、「物理的
に削除」(Delte文での削除)、と言っているのならば、単純に重複行をoid使って削
除すればいいだけだと思うが。
テーブルのサイズにも寄るだろうが、oidを使って、削除するものが、>206より速度
的に劣るとは、絶対に思えん。
もしかして・・・・oidの概念とか、oidの使い方がわからないんかい?
0228その1
02/03/20 11:08ID:txl31ITf>create test (a integer);
CREATE
>insert into test values (1);
INSERT 123055 1
>insert into test values (2);
INSERT 123056 1
>insert into test values (1);
INSERT 123057 1
>select * from test;
a
---
1
2
1
(3 rows)
>select distinct * from test;
a
---
1
2
(2 rows)
>select oid, a from test;
oid | a
-------+--
123055 | 1
123056 | 2
123057 | 1
0229続き
02/03/20 11:09ID:txl31ITfDELETE 1
>select * from test;
a
---
1
2
(2 rows)
>select oid, a from test;
oid | a
-------+--
123056 | 2
123057 | 1
(2 rows)
0230206
02/03/20 11:09ID:OKaF+07yスマソ、後者。
DELETE FROM table WHERE oid = 重複
の「oid = 重複」の書き方がわかんないんす。
oidについては知ってるツモリ。
それとも、漏れ、わかってねぇ?
0231206
02/03/20 11:12ID:OKaF+07yでもこの消したい行がわんさかあるんですわ。
サブクエリとか使いまくったら何とかなるかな。。。
0232227(=228=229)
02/03/20 13:46ID:txl31ITfこのサンプル、ちゃんとサブクエリ使っておいた。
oid最大のものだけ残して、あとはすっかりきれいにしてくれるはずだ。
0233227
02/03/20 14:26ID:txl31ITf>232では、勘違いしてた。削除対象そのものがたくさんあるって事だね。
うまいこと工夫してサブクエリ組み合わせるのもいいが、
次のようなファンクションを核のも手だぞ。
CREATE FUNCTION testfunc() RETURNS INTEGER AS '
DECLARE
rs RECORD;
va INTEGER;
BEGIN
FOR rs IN SELECT a FROM test GROUP BY a HAVING count(*)>1
LOOP
DELETE FROM test WHERE a=rs.a AND oid<>(SELECT MAX(oid) FROM test WHERE a=rs.a);
END LOOP;
RETURN 0;
END;
' LANGUAGE 'plpgsql';
plpgsql使ってるけどな。ファンクションの返り値は適当に工夫しる。
0234nobodyさん
02/03/22 08:23ID:???0235nobodyさん
02/03/25 00:06ID:n+2iUXgjLIKE句使うのと、正規表現使うのでは、どちらの方がパフォーマンス的に
良いのでしょうか。
0236nobodyさん
02/03/25 00:23ID:hKhhq3k30237nobodyさん
02/03/25 00:39ID:???うそを言っちゃダメ!
Learning PostgreSQL という参考書にちゃんと書いてあるYO!
P224-225
「PostgreSQLでは、LIKEや正規表現の検索にインデックスが使われないため、
検索速度が劣化します。前方一致検索だけは例外で、この場合だけはインデックス
が使われて高速検索が可能になります。」
0238235
02/03/25 01:27ID:n+2iUXgjありがとうございますた。
0239
02/03/25 01:30ID:t/0Pfn5bOracleと比較した場合はどうなる?
教えてちょーだい!
0240nobodyさん
02/03/25 02:23ID:Tru1yM6S利用目的にもよると思うけど。
とりあえず中小規模の社内システム程度なら、
オラ来る使う必要無いケースなんて多いっしょ。
0241Dream ★
02/03/25 02:38ID:???ビンボ人としては、そういう比較できるのがうらやましいです。
お金あるんだったら有無を言わずOracleがいいと思います。
トラブルの時や、コーディング行き詰まったら痛感すると思います。
0242nobodyさん
02/03/25 02:43ID:???OpenSourceでも、意外とWebでサポートに近いくらいの情報集められたりするけどね。
情報収集力も、スキルのうちってか。
0243nobodyさん
02/03/25 02:49ID:???http://japan.internet.com/linuxtutorial/20020219/1.html
「基幹業務にオープンソースの DB は使えるか」から抜粋。
------------------------------------
もうひとつ、われわれ主催者である OSDN のネットワークには非常に多くのサイトがある。
OSDN.com をはじめとして Slashdotスラッシュドット、SourceForge、Freshmeat、Linux.com などの
ほとんどのサイトでバックエンドで動いているのは MySQL だ。特に、Slashdot や SourceForge では
非常に多くのアクセスがあり、しかもほとんどのデータもメッセージもシステムごと DB に格納されているので
非常に大きな負荷がかかるが、スムーズに動いている。
Slashdot のシステムはオラクルでも PostgreSQL でも動くが、 MySQL ほどのスピードが実現できない。
Slashdot は毎月4000万 PV 以上あり、登録ユーザーが25万人いる。 Web サーバーが8台、
DB サーバーは1台だけある。 Web サーバーにはいつ落ちてもおかしくないような負荷がかかっているのだが、
リクエストを受ける MySQL の DB サーバーはいつもスムーズに動いている。
0244Dream ★
02/03/25 03:03ID:???チューニングする人の腕とか、カスタムチューンの話抜きだから、
ちょっと間引いて聞きたい内容ですけどね。
なるほど〜って思うところもありました。
0245nobodyさん
02/03/25 14:29ID:NfHuoItu比較しがたいもの、Linux DBMS パート3--1
http://japan.internet.com/linuxtutorial/20001216/1.html
>真の RDBMS が必要なら PostgreSQL を選択するしかない。実際のパフォーマンス
>が重要なら、小規模なシステムほど良い結果を得られるだろう。特にデータベースへ
>のアクセスが単純でほとんど自動的である場合はそうだ。
>mSQL と MySQL は、このような理由で Web データベース システムとして宣伝されている。
トランザクション機能をとりあげて、PostgreSQLに分があるか、のような言い方をしてる
ともとれる。
…が、そもそもそこまでの機能が要されるものが果たしてどれくらいWebで存在
するのだろうか?
おそらくまっとうな正規化すら要求されていないのでは?と想像。
0246nobodyさん
02/03/25 14:32ID:???0247nobodyさん
02/03/26 04:35ID:DXFNnhOwPostgreSQLだと思われ。せこいけど、企業ポータルなどではMySQLはライセンス
料かかりそうだし。
0248nobodyさん
02/03/26 11:30ID:eWERFRsP>MySQLはライセンス料かかりそうだし。
これ払っていないとこ多そうだね。
0249nobodyさん
02/03/26 14:50ID:pCSwfjmMテーブルのカラム名の順番変えたいんだけど
方法ってありますか?
手持ちの完全攻略ガイドに無いので、存在しないのかなと思ったり思わなかったり。
select * from table の見栄えが悪いの気持ち悪い・・・
0250nobodyさん
02/03/26 15:20ID:???かえれば?
0251nobodyさん
02/03/26 16:10ID:pCSwfjmMどうやって?
0253nobodyさん
02/03/26 16:11ID:pCSwfjmM辛いなぁ…
0254nobodyさん
02/03/26 16:34ID:???そのくらいのスクリプト朝飯前でしょ?
0255nobodyさん
02/03/27 01:41ID:dp2z17TYMySQL って今でも商用利用にお金かかるの?
無償で使えるようになったと聞いたんだけど・・・?
0256255
02/03/27 01:47ID:dp2z17TYMySQL は GPL と 商用ライセンスのデュアルライセンスなんだね。
http://www.softagency.co.jp/order/license.html
ちなみに、Postgres は BSD ライセンス。
0257nobodyさん
02/03/27 02:08ID:???じゃあたとえば、MySQLを含まない製品を、製品動作に必要なMySQLのDBのみ含めて販売した際に、
MySQLの導入を無償のサービスとして行う場合は、商用ライセンスに該当する?
0260258
02/03/27 02:36ID:???>257は、MySQL サーバと併せて「売ってる」ワケじゃないな。
該当しないかも。
・MySQL のサポート、インストールや管理を有料で行った場合。
これは売り切りであとはサポート無し、という契約なら該当しないかな。
一切のサポート無しの契約なんて、普通しないもんね。
0261nobodyさん
02/03/27 02:46ID:???難しいんだねぇ・・・
ま、とりあえずビジネスベースでMySQL使うなら、大人しくライセンス買っといたほうがいいってことだね。
顧客的にもそのほうが後々、幸せだろうし。
0263nobodyさん
02/03/28 04:46ID:xQXjNFYdログ)の実装は終わったのかな?
0264hogehoge
02/04/08 13:09ID:AYJuT8cHデカイ話だと思うんだけど、なんでみんな冷静ですか。
MLにも出てるけど
ttp://www.sankyo-unyu.co.jp/Pool/PostgreSQL.htm
ここのパッチでみんな解決したのかなあ。
0265nobodyさん
02/04/22 00:13ID:1DFRB74b0266nobodyさん
02/04/22 00:30ID:OmlBepHHそんなもんだよ。
私はPostgres と Oracle と MySQL と InterBase と パラドックス使ってる。
0267nobodyさん
02/04/22 14:06ID:7LCMI0nt以下のようなエラーがでてしまいます。
ODBC--呼び出しが失敗しました。
Error while executing the query.
ERROR: tablename: Permission denied. (#7)
PostgreSQLは Redhat Linux 7.2 で動かしていて、
psqlでの操作、table作成、
同マシン上でのJDBC経由での操作は問題ありません。
また、Access2000でpsqlで作成したtableの一覧はでてきており、
テーブルのリンクは作成できてます。
しかし、そのテーブルのリンクを開こうとすると、上記のエラーが
出てきてテーブルの中身は見ることができません。
何が原因なのでしょうか?
0268nobodyさん
02/04/22 19:57ID:???0269267
02/04/22 21:01ID:???0270nobodyさん
02/04/23 16:58ID:ScEW9CB6name | ocupation
鈴木一郎 | 野球選手
鈴木三郎 | タバコ屋
鈴木一郎 | 野球選手
鈴木次郎 | 魚屋
鈴木宗男 | 政治家
に対して
SELECT * FROM a_table WHERE name = '鈴木一郎';
した場合、全部出て来ちゃいます。
LIKE や "~" など正規表現では問題ないのですが。このためGROUPもできないのれす。
7.1の時は自分の環境じゃ起きなかったのに7.1.3からそうなるようになっちゃったです。
今まで放っておいたんですが、やっぱり治したい…。もちencodingはEUC_JPなんですけど。
0271270
02/04/23 17:25ID:ScEW9CB6例えば 鈴木喜三郎、田中一郎、大林素子を含むレコードに
鈴木一郎をSELECTした場合、鈴木喜三郎以外、全部出る…
田中一郎をSELECTした場合、 鈴木喜三郎以外、全部出る…
どうもSTRING長しか見てないような気がする…
0272nobodyさん
02/04/23 22:27ID:us8x58hp環境作って試験しましたがなりません。
実験手順は以下です。
1.PostgreSQL 7.13 を準備
2.SQL: create table house (name varchar(100),occupation varchar(100));
3.EUC/TAB区切りで >>270 の一覧を作成
4.\copy でインポート
5.SELECT * from house where name='鈴木一郎';
もし本当なら PostgreSQL Users-ML の方にポストするべきです。
入力した日本語文字コードがEUCかチェックを希望。
0273nobodyさん
02/04/23 23:07ID:???http://www.mysql.com/news/article-91.html
http://www.eweek.com/article/0,3658,s=708&a=23115,00.asp
http://www.eweek.com/slideshow/0,3018,sid=0&s=1590&a=23120,00.asp
0274nobodyさん
02/04/24 00:57ID:AExlUipDトランザクションも、オンライン・アーカイブ・ログも、ストアド・
プロシージャーも無いデーターベースを凄いといわれても・・・。
0275nobodyさん
02/04/24 02:28ID:???■ このスレッドは過去ログ倉庫に格納されています