トップページphp
1001コメント345KB

PostgreSQL

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/09(水) 11:36ID:GHX.oCXo
PostgreSQLについて語りましょう。
関連アプリケーション特有の話題は、以下のスレッドへ。

☆関連スレッド
[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
0458nobodyさん02/08/10 00:30ID:???
しのにむ
0459nobodyさん02/08/10 00:43ID:K0BBB4AY
>>457
テーブル設計が腐っています。

select 日時,面会者1 AS 面会者 from 面会記録テーブル
union
select 日時,面会者2 AS 面会者 from 面会記録テーブル

以上のようにして合成し、日時,面会者の形に整理して使いましょう。
まとめると以下のようになる(かも)

select a.ID,a.名前 from
(select 日時,面会者1 AS 面会者 from 面会記録テーブル union select 日時,面会者2 AS 面会者 from 面会記録テーブル) a,人物テーブル b
where a.ID==b.ID
0460nobodyさん02/08/12 21:08ID:wOaAyc1y
>>459
>テーブル設計が腐っています。
(´・ω・`)ショボーン 勉強してきます。

えっと上ので試したけどいまいち訳わからずです。
一度の面会で複数の人に会ったという設定なのですが、
このSQLでよいのですか?

DQNな質問でスマソ。
0461nobodyさん02/08/14 04:37ID:MFUQQkAB
>>460
 アプリケーション側で表示は工夫する必要はあります。
 同じIDの人は、同じ面会であったことになるので、ソートして再構築。
 SQLはwhere句がでたらめだったので、以下のような感じに訂正。(動作チェックはしていません)

select a.ID AS 面接ID,a.名前 AS 面接者名 from
(select 日時,面会者1 AS 面会者 from 面会記録テーブル union select 日時,面会者2 AS 面会者 from 面会記録テーブル) a,人物テーブル b
where a.面会者==b.ID
order by 面接ID
0462nobodyさん02/08/14 10:47ID:???
シンプルに
select m.日時, j1.名前 as 面会者1, j2.名前 as 面会者2
from 面会記録テーブル as m, 人物テーブル as j1, 人物テーブル as j2
where m.面会者1 = j1.ID and m.面会者2 = j2.ID
じゃダメ?
cross join がイヤなら適当に変えてね。
046346102/08/14 16:11ID:MFUQQkAB
>>462
いける。頭まわっていなかったらしい・・・
0464nobodyさん02/08/14 21:30ID:/c+Z8KBo
>>462
解決出来ました!有難う御座います。
>>461
どうもいろいろ意見有難うございました。unionの用法勉強してきます!
0465コギャルとHな出会い02/08/14 22:08ID:udQrDzAC
http://kado7.ug.to/net/


朝までから騒ぎ!!
   小中高生
 コギャル〜熟女まで
   メル友
  i/j/PC/対応

女性の子もたくさん来てね
  小中高生大歓迎です                 
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。

  激安携帯情報あります。
046646602/08/20 01:22ID:VsvDpbeq
Postgres初心者です。1週間ほど考えています。アドバイスお願い致します。

データ-ベースを使用するデータ-ベース使用者の数だけPostgresのアカウントを発行するのが嫌だったので
"Administrator" と "User" という2つのアカウントだけつくり、
したにあるようなIDとパスワードを保持する別のテーブルを作って認証を行おうと思いました。
DataBase=# select * from lD_Passwd;
id | password
------------+----------
tanaka | abcdefg
satou | 0000000
guest | guest

上のテーブルにSelectの権限が与えられているのは"Administrator"(=管理者)のみで
その他のデータ-ベース使用者はすべてアカウント"User"を使うことになります。
ところがUserたちが認証する際、読み取り権限がないのでアクセスすることができません。
読み取り権限を与えるとすべての人のパスワードが見れてしまうことになります。
そこで、
関数をつくって、その中で権限をAdministratorにしてそのテーブルにアクセスして、
Idとパスワードが正しいかどうか判断したのち、戻り値(True or False)として
Userに返すという方法を考えていますが関数自体に権限を与えるといったような
簡単な方法はないでしょうか? また、根本的に間違っているのでしょうか?
マニュアルには見当たりませんでした。
どなたかご教授お願いします。

ちなみにデータ-ベースにはlibpgvbというDLLを使ってVBからアクセスしています。
0467nobodyさん02/08/20 01:27ID:Yv31fq1H
http://www.geocities.co.jp/Hollywood-Screen/8924/profile.html
なあ、この女どう思う?
0468httpd02/08/20 18:26ID:cHWvWGpn
以下の場合、hogedbの作者はhttpdじゃないの?
grantしないとpermissionエラーになるんですけど(;_;)
いちいちgrantしたくないので助けてくださいm(_ _)m
要するにhogedbにhttpdでアクセスしたいだけなのですが・・・どこが違うの??

//ユーザー作成
createuser -d httpd
//変身!!
su httpd
//DB作成
createdb hogedb -U httpd
//インポート
psql -e hogedb < db.out
046952802/08/20 18:40ID:???
>>468
答えは出てるじゃん。そのエラーのとおりだよ。
0470nobodyさん02/08/21 11:57ID:2UYHGwou
おーい、今更なんだけどさ、7.1.xから、7.2.xに乗り換えた香具師。
データの移植は正常だったですか?

おいらんトコは、7.1.xのpg_dumpバックアップファイルが、一部のテーブルだ
けエラーでダメだった。

どーなんてんだ?いったい‥‥‥
0471nobodyさん02/08/21 13:04ID:IYK8rA+A
>>470
EUC 外の特殊な文字とか入ってない?
047247002/08/21 14:12ID:2UYHGwou
>>471

ないと思うんですけどねぇ‥‥

データの大元は、S-JISのテキストなんですけど、変換かけてEUC
にしてから入力にかけてますんで‥‥‥
0473httpd02/08/21 16:30ID:ie5NkI8Z
>>470
Version覚えてないけどシーケンス発行がトラブった。
つーか、setvalでシーケンスの数字変更する時に。
最後の't'を外したら動いたけど……。
0474httpd02/08/21 16:33ID:???
どもども >>469
やっぱり、これではhttpdの所有になっとらんのですね(T_T)なぜだ……。

//ユーザー作成
createuser -d httpd
//変身!!
su httpd
//DB作成
createdb hogedb -U httpd
0475nobodyさん02/08/22 17:05ID:w2//Sq4y
Perl+Pg.pm+Postgresという環境です。
AというテーブルからBというテーブルへ項目をコピーしたいのですが、その際に
日付/時刻型の「2002/08/22 午前 12:12:12」というデータを「yyyymmddhhmmss」という型に
デコードしてコピーしたいのですが、どういった方法が挙げられるでしょうか?
0476nobodyさん02/08/22 21:19ID:sZeyw1CT
>>475
何のために?
DB に入れておくんだったら、日付型の方が便利。
時刻をフォーマットしたいだけなら to_char() を使うけど。
0477nobodyさん02/08/22 23:17ID:WGWM2PPc
データベースの容量って制限できるの?
ユーザquotaのしばり受けるの?
Postgreの使えるレンタサーバ使おうと思ってるんだけど、HP容量にDB容量が含まれるのか知りたくて
0478_02/08/23 14:03ID:???
>Postgreの使えるレンタサーバ
xreaですか?
0479nobodyさん02/08/23 20:42ID:???
>>477
xreaなら含まれるな。って言うかどこでも含まれる気がするけど。
0480nobodyさん02/08/23 20:48ID:5qP9jqJh
>>479
xreaのHPに、「データベースサイズ:目安は5メガバイトまで。」って書いてあるぞ。
HP容量と違うし
0481nobodyさん02/08/23 21:39ID:5qP9jqJh
データベースファイルのユーザは postgres になってたから、quota は効かないよーな気がする
0482nobodyさん02/08/24 05:30ID:???
>>481
groupquota
0483nobodyさん02/08/24 06:47ID:???
>>482
無理。

initlocation使ってうまく容量制限かけられたとしても、制限にひっかかると
dbが壊れる。

PostgreSQL自体がデータベースごとの最大容量を指定できるようにならない限
りはどうしょうもないと思う。
0484nobodyさん02/08/27 15:00ID:???
DBからユーザを削除したいのですが、
念のため pg_class の中を削除したいユーザIDで検索すると、

pg_toast_XXXXXX_idx
pg_toast_XXXXXX

というデータが見つかります。これって何でしょう?
無視してユーザ消してしまっていいんでしょうか?
0485nobodyさん02/08/27 15:28ID:???
>>484
pg_*テーブルはPostgreSQLの内部テーブルなんでユーザーを消しても平気。
TOASTが何かを知りたいなら↓。
http://www.jp.postgresql.org/projects/devel-toast.html
048648402/08/27 15:59ID:???
>>485
でも、とあるテーブルのオーナを削除したらまずいんじゃないの?
と思って試してみたら

%createuser hoge
%psql -U hoge hoge
hoge=#create table t1 (a int);
hoge=# \dt
List of relations
Name | Type | Owner
------+-------+-------
t1 | table | hoge
(1 row)
hoge=#\q
%dropuser hoge
%psql hoge
hoge=# \dt
List of relations
Name | Type | Owner
------+-------+-------
t1 | table |
(1 row)
hoge=#\q
%

あ、なるほど。表示されなくなるだけなのね。納得。
04877.2.202/08/27 23:49ID:yZsdlGNN
実は本家はマイナーバジョンアップしてるという罠
0488nobodyさん02/08/28 00:15ID:???
create operator classとかset search_path=publicとか
7.2.2でサポートされてます?7.3からかな?

select timestamp( date(now()) );
通るようになったかな。7.2.1だと↑通らん。

SELECT CAST( now() AS date ), now()::date, 'now'::date::timestamp;
通るからまぁいいんだけど。
0489nobodyさん02/08/28 06:15ID:???
7.2.2 は
> ALSO NOTE!!! This is a security update. A number of security related
> bugs were fixed. The update is mandatory!!
ということなので、さっさとアップデートした方がいいよ。

>>488
7.2.xは基本的にメンテナンスリリースなんで新機能は入りませんです。
0490nobodyさん02/08/28 06:40ID:???
>489
マイナーバージョンアップは、PGDATA領域そのまんまでも
OK?
0491nobodyさん02/08/28 08:46ID:???
>>490
OK
以下を参照ね。
http://www.jp.postgresql.org/sitess.html
0492nobodyさん02/08/29 11:09ID:V8Nh7P6Z
遅れ馳せながら
>>476さんありがとうございます。

項目の定義として、システム日付をデフォルトで入れるように
「日付 varchar(14) default to_char('now'::datetime, 'YYYYMMDDHH24MISS')」
という風に設定しているのですが、データを見ると日付の中にはテーブルを作成して
一番最初に取得したYYYYMMDDHH24MISSを何度も入れてしまいます。

名前 | 日付 |
--------------------------
aaa |20020829103253 |
bbbb |20020829103253 |
cccc |20020829103253 |

        ・

といった感じなのですが、このテーブル項目作成の定義は間違っているでしょうか。
0493nobodyさん02/08/29 11:43ID:???
>>492
http://www.postgresql.jp/document/pg721doc/user/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
0494nobodyさん02/08/29 14:49ID:???
>>493さん
おかげでうまくいきました。
ありがとうございました。勉強になりました。
0495nobodyさん02/08/29 15:21ID:K7zpT3ze
更新履歴をデータベース化しようとしているのですが
INSERT INTO "whatsnew" VALUES(
'2002-08-29',
'{"<a href="/">XXXX</a>を更新しました", "YYYY"}'
);
と書くと前半部分<a href="/が無視されます。
"のエスケープする方法しらないでしょうか?
0496nobodyさん02/08/29 15:22ID:???
( ´,_ゝ`) プッ
0497nobodyさん02/08/29 15:32ID:???
>>495
\"
0498nobodyさん02/08/29 15:42ID:K7zpT3ze
>>497
それはやってみたんだけど、
テーブルの中身を確認したら無視されています。
0499nobodyさん02/08/29 15:43ID:???
ちょっと日本語変でごめん。
050049702/08/29 15:55ID:???
> '{\"<a href=\"/\">XXXX</a>を更新しました\", \"YYYY\"}'
これじゃだめなのね? なんでだろうね。
あと、"と'を混在しているのはなぜ? 全部"でかいてみ。

050149502/08/29 16:08ID:???
それでも変化なしでした。
テーブルの中身は「{">XXXX</a>を更新しました","YYYY"}」です。
あと'と"を混合してるのは下のページの影響です。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/arrays.html
050249702/08/29 16:11ID:???
ああ、誤解していたよ。これならどう?
> '{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
0503nobodyさん02/08/29 16:28ID:???
それでも駄目でした。
テーブルの中身も変わらず…。
050449702/08/29 16:30ID:???
テーブルの定義はどうなっている? 配列なんだよね?
050549502/08/29 16:48ID:???
CREATE TABLE whatsnew(
update date,
content text[]);
こんな具合です。
050649702/08/29 17:03ID:???
実はMySQL使いなので、MySQLで試しててみたんだけど。。(あまり関係ないと思ふが)
<a href="/"> の、/ って、エスケープ文字と同じじゃない?
だから、エスケープはこうならないかな?
> '{"<a href=\"\\\">XXXX</a>を更新しました", "YYYY"}'
050749502/08/29 17:11ID:???
それでも駄目でした。
ERROR: parser: parse error at or near "'"

ためしにこっちもやってみたけど
'{"<a href=\"\/\">XXXX</a>を更新しました", "YYYY"}'
こちらも駄目。
050849502/08/29 17:32ID:???
ごめんなさい。自分が間違っていたみたいです。
'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
とすれば、テーブルの中身は
「<a href=\"/\">XXXX</a>を更新しました", "YYYY"}」
となっていました。迷惑かけてごめんなさい。
050949702/08/29 17:50ID:???
ぶーぶー。
でも、解決したみたいなので良かったっす。
# これが MySQLスレだったらもっと良かったのに
051049502/08/29 17:53ID:???
phpPgAdminを使っていてごっちゃになっていました
'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
じゃなく
'{"<a href=\\\"/\\\">XXXX</a>を更新しました", "YYYY"}'
でした。
スレ汚し、スマンです。もうちょっと勉強してきます。
0511sas02/08/30 04:37ID:T6Vbh/On
はじめまして! 
Postgresqlにログイン出来なくて困っています…。
postgresql-7.1.3 win32をインストールし、
initdb.exeを実行してデータベースを初期化し、
pgsvmgr.exeでデータベースサーバーを起動し、
psqlj.exeで、ホスト名localhost
ユーザー名 Administrator
パスワードはWindowsで管理者としてログインするときの
パスワードを入力しましたがログインできません。
色々調べてみましたが、原因がわかりません。
どうしたらいいでしょうか?教えてください。


0512nobodyさん02/08/30 05:08ID:???
パスワードあってるの?
0513sas02/08/30 15:53ID:PK97+40Y
WindowsXPにログインする時に、
使っているパスワードなので、
あってると思います。
0514nobodyさん02/08/30 16:28ID:okP1fGcQ
Redhat7.3で最初にインストールされるPostgreSQLの状態って
そのまんまで他のクライアントからODBC接続(Accessでリンクする)はできないんでしょうか?
ODBC--呼び出しが失敗しました。
Could not connect to the server.
Could not connect to remote socket (#101)
っていうエラーがでるんですが・・・(Accessでリンクしようとした時)
0515nobodyさん02/08/30 16:30ID:okP1fGcQ
↑あ、ユーザーとデータベースは作ってあります。
0516nobodyさん02/08/30 18:15ID:???
>>513
PostgreSQLのユーザーはWindowsのユーザーとは別。
pg_hba.confで検索しる。

>>514
Redhatは知らんが、デフォルトではTCP/IPでの接続はできない。
postgresql.confでtcpip_socket = trueする。
たぶん、パスワードとかの設定も必要だろうからその辺は適当に。
051751402/08/30 19:17ID:okP1fGcQ
>516
うおおおおおお
のた打ち回ってた問題が解決したっ!
あんた神か!? ありがとう!
0518nobodyさん02/08/30 20:44ID:8xSHI6ux
マニュアル読もうよぉ
0519nobodyさん02/08/31 02:43ID:???
とあるパターンを配列に格納し、その出現回数を取得したいと思います。
ところが

 SELECT pattern, count(pattern) FROM t1 GROUP BY pattern;

とやると、

 ERROR: Unable to identify an ordering operator '<' for type '_text'
  Use an explicit ordering operator or modify the query

と怒られてしまいます。ひょっとすると、と思って、

 SELECT pattern FROM t1 ORDER BY pattern;

とやっても案の定、同じように怒られますた。

このあたりが配列の限界なのでしょうか?
ちなみにテーブルは以下のような形です。

 CREATE TABLE t1 (
  pattern TEXT[]
 );
 INSERT INTO t1 VALUES ('{"A", "B", "C"}');
 INSERT INTO t1 VALUES ('{"A", "B", "C"}');
 INSERT INTO t1 VALUES ('{"A", "D", "E"}');
         :
         :
0520nobodyさん02/08/31 02:58ID:mK1R3E6Z
全国の看護婦フェチの方、並びに盗撮マニアの皆さん、お待たせしました!都内某所の病院に盗撮カメラを仕掛けるという一大プロジェクトを敢行!!
ナースステーションのあらゆる場所に仕掛けられた隠しカメラから、知られざるナースたちの秘密を映し出します!
http://210.188.193.18/agency/bnb/form.phtml?banner=wataru
0521nobodyさん02/08/31 08:24ID:???
>>519
operator < (text[], text[]) が無いのが原因。
自分で create operator してやればいいんじゃない?

でも、配列の各要素を別の行にできないかも検討してみるといいかも。
他のDBMSへも移植しやすくなるし。
0522nobodyさん02/08/31 11:05ID:McY4kGnj
普段はAccessでリンクしてデータを追加したり変更したりしてるんですが
テーブル作るときにデフォルトのSQL_ASCIIってのだと文字化けしてるんで
EUC_JPで作り直したらこんどはWebで表示したときに文字化けるように
なってしまって・・・どうすればいいんでしょうか・・・。
0523nobodyさん02/08/31 11:09ID:Eh4H/Twd
>>522
 文字コードが統一できていないから化けるのだと思われ。
 HTMLの文字コードをEUCにするか、PosgreSQLから出したデータをSJISなどに変更しろ。
0524nobodyさん02/08/31 17:32ID:???
>519

contribとintarray,arrayあたり使えばできるよ。
ただ、配列使うとindex使われないからあまりいいスキーマ設計とはいえないね。

まだ
"ABC"、"ADE"とかで前方一致(LIKE)で検索した方がいいような。
0525nobodyさん02/08/31 17:32ID:???

contrib!の!
0526動画無料サンプル02/08/31 22:55ID:AF4irkr1
ブルマ・水着・セーラー服でスケベな事してる
小学生、中学生、女子高生が【無料】で見れる!!
http://www.traffimagic.com/WIPE7MMLZCA/comein/NZKYA
052712302/09/01 02:40ID:Rn3wDJdF
えっと,PostgreSQLのストアドはいい開発環境とかあるのかな?
SQLはcse使っているけど,あれではストアド作ることしかできないよな。
いい開発環境がないと,どうもそもそも使う気になれない。
ただ,SQLにソースを書くのは好きではないので,PostgreSQLでもストアドはやっぱり使いたい。

誰かいい開発方法知らんかのぉ。
普段使ってるストアドはTransactSQL(SQLserver)になるが,
たとえば,こんなものを作るとする。

DECLARE @no int
SET @no = 1

SELECT *
FROM TABLE
WHERE no = @no

@no = 1 でSELECTするということ。
これをクエリマネージャとか使うと結果も見れる。
ストアドに変えようと思ったらそのまま,
上と下に Createprocedre [selectno](こんなんだっけ) go とかつけて,
SET = としているとこをパラメータ渡しに変えたらストアドになるしね。
こんな簡単なSQLだったら,一発で作れるだろうが,ちょっと複雑なもので
テストとか繰り返して,作ろうと思ったら,開発環境いるよな。

また,コンソールから exec selectno(1)
みたいにしたら,ストアドをキックできて,結果も見れる。
こんなことしながらの開発PostgreSQLで出来るのかな。

とりあえず,ストアド作った後にそれを実行するのが,
プログラムからしかできないのはきつい
0528nobodyさん02/09/01 03:21ID:???
>527
ストアド作るごときエディタでええやん。

頭ん中で流れ考えるんだよ(w
それが面倒ならmssqlserverでも買ってなさいってこった。

pgaccessでやれることが限界では。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/app-pgaccess.html

テキストベースでできた方が何かと便利。
遠隔操作とかにも都合がいいし、テストをちょちょっとスクリプトで書いたり。
052952202/09/01 18:41ID:/oI3M69S
>523
PosgreSQLから出したデータをSJISなどに変更
ってどうやるんでしょうか・・・
0530nobodyさん02/09/01 21:06ID:???
client encodingを変えればいいじゃん。
053152202/09/01 23:39ID:/oI3M69S
>530
psqlで
SET CLIENT_ENCODING = 'SJIS';
とやってみたんですが、Webで表示してる方には変化がなくて・・・。
HTMLのCharsetをEUCにすると日本語はOKなんですが関係ない部分が
なぜか文字化けてしまいました。
0532nobodyさん02/09/01 23:45ID:???
ラージオブジェクトについて教えてください。

@ラージオブジェクトを例えば

  INSERT INTO t1 (id, oid) VALUES (1, lo_import('/tmp/hoge'))

 で作ったとして、それを削除したいときには

  DELETE FROM t1 WHERE id = 1

 で削除するだけでいいんでしょうか?ゴミとかは残りませんか?

A上記の例でさらに

  UPDATE t1 SET oid = lo_import('/tmp/hoge') WHERE id = 1

 なんてしちゃった場合、元のラージオブジェクトはどこに行ってしまうのでしょう?
 自動的に削除されるのでしょうか?ゴミとかは残りませんか?
053352202/09/01 23:50ID:/oI3M69S
■ ← この文字(記号?)が文字化けてしまいました。
0534nobodyさん02/09/06 02:31ID:tscmWiVv
textデータ型の容量制限が1Gということですが、
1カラムに1Gがのデータを入れると、8kのカラム容量制限に引っかからないですか?
0535nobodyさん02/09/06 08:36ID:KP0wE/mN
>>534
8kのカラム容量制限 は、7.1 で解決済み。
最新版使ってれば全く問題ない。TOAST という技術。
私はメールの本文とかを丸ごと1カラムに格納してる。
0536ななしし02/09/06 12:16ID:o0uKxXbL
>>532
残ります。
lo_unlinkをかけてあげましょう。
053753202/09/06 14:12ID:???
>>536
ありがとう。
0538nobodyさん02/09/06 18:21ID:6cS1MLb+
>>535
ありがとうございます。
助かりました。
05398月のクリスマス ◆zzfy/JR2 02/09/06 18:37ID:zUklKDWI
PostgreSQLに接続し
$result=pg_exec("select * from nwpersonal ");
を実行すると下記のエラーが発生するのですが
どうしたらよいのでしょうか?
分かる方よろしくお願いします☆

Warning: PostgreSQL query failed: ERROR: nwpersonal: Permission denied.
0540nobodyさん02/09/07 00:41ID:???
>>539
許(grant)してけれ〜〜、お代官様(w
つか、ちぃたぁマニュアル読め(w
0541nobodyさん02/09/08 09:08ID:???
マニュアル読まなくてもPermission deniedぐらい理解さらせ
0542nobodyさん02/09/08 12:44ID:???
最近、目の前に出ているエラーメッセージすら読まない香具師多数。
0543nobodyさん02/09/09 01:15ID:Ek+d2LV7
掲示板のログを1つのテーブルに入れようと思います。
件数は1万件以上ですが、テキストファイル保存に比べて、
パフォーマンス上問題はないでしょうか?
0544nobodyさん02/09/09 16:59ID:???
>>543
どのような掲示板でしょうか?(と聞いてみる)
0545nobodyさん02/09/09 20:33ID:???
うまく作れば、フラットファイル保存の方が速いに決まってる。

しかし、作り込まれたRDBMSよりパフォーマンスが出るフラットファイルの
入出力を作るのは至難の技。

それに、ふつーに作れば、ネットワークの帯域の方がボトルネックになって、
I/Oなんてどっちもどっち。

イントラとかなら別だが。
0546nobodyさん02/09/10 09:52ID:VSIVhwr4
>>544
普通のスレッド型掲示板です。
スレッドを表示する場合はスレッドIDが一致するものだけ取り出そうかと。
0547nobodyさん02/09/10 17:03ID:20uIzqy9
どなたか教えてください。
Pear DBパッケージのStatementを用いた挿入がうまくいきません。
【PHP】質問スレッドとPHP+MySQLでたずねたのでマルチになりますが。。。
どなたも答えてくれませんので、またここで、質問を投げます。だめですか??
※日付型(書式:yyyy/mm/dd HH:mm:ss)は現在時刻を挿入する。
※日付型以外(文字列、数値型)はうまくいきます。
エラー内容
SQLエラー → ステートは37000
コードは以下です。
/**
* インサートテスト
*
* @access public
* @param ProductState $ps 製品状態情報
*/
function insert($ps)
{
 // DB接続
 $this->connect(); // $this->db = DB::connect( $dsn )にて取得。
 // SQL文
 $sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)";
 // Statement取得
 print "date=" . date("Y-m-d H:i:s",time()) . "\n";
 $stmt = $this->db->prepare( $sql );
 // SQL発行
 // $this->db->execute($stmt, array($ps->id,$ps->name,time())); //これもだめでした。
 $this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
 // DB切断
 $this->db->disconnect();
}
0548nobodyさん02/09/10 17:05ID:20uIzqy9
↑DBになるべく依存しないようにStatementを使いたいのです。
自分のイメージ的には、JavaのJDBCの様に使いたいのです。

よろしくお願いします。
0549nobodyさん02/09/10 22:04ID:???
分かんないんだけど、何が問題なわけ?

日付のフォーマットが問題なら、
フォーマットするwrapper関数みたいのを作ればいいじゃん。

100% RDBMS依存を無くしたいなら PEAR に contribute しる。
0550nobodyさん02/09/10 22:55ID:ecEmpk8F
>>548
日付をフォーマットしたいのか?
to_char() 使え。逆の関数もあるぞ。
Postgres 提供の関数だから、SQL 中に記述できるぞ。
0551nobodyさん02/09/11 06:26ID:MyJQslI1
>>548
PostgreSQLはよくわからんのだが、
date("Y-m-d H:i:s",time())
DATE型は「年月日」までじゃないか?入力形式。
H:i:s は無視されるだろ。つか「フィールドの型がちがうぞ!エラー」じゃないか?
時分秒を扱うならTIMESTAMPにすれば?
0552nobodyさん02/09/12 03:22ID:r6MxR56R
現在使用してる容量ってどうやって調べるの?
0553nobodyさん02/09/12 11:57ID:???
du
0554nobodyさん02/09/12 12:18ID:r6MxR56R
>>553
データファイルはどこにあるの?
0555nobodyさん02/09/12 12:43ID:???
/usr/local/pgsql/data
0556nobodyさん02/09/13 17:18ID:39GWJCRQ
Postgres 7.1.2 とAccess2000 を使っているものですが、
平分パスワードで接続できるのですが暗号パスワードで接続できません。
つまりpg_hba.confでcryptとした後接続できません。
どうすればいいんでしょうか?
そもそもパスワード暗号化は可能でしょうか?
0557nobodyさん02/09/13 20:30ID:???
ODBCどらいばがサポートしている方法しかつかえないっしょ。
ドキュメント見れ。
■ このスレッドは過去ログ倉庫に格納されています