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
0483nobodyさん
02/08/24 06:47ID:???無理。
initlocation使ってうまく容量制限かけられたとしても、制限にひっかかると
dbが壊れる。
PostgreSQL自体がデータベースごとの最大容量を指定できるようにならない限
りはどうしょうもないと思う。
0484nobodyさん
02/08/27 15:00ID:???念のため pg_class の中を削除したいユーザIDで検索すると、
pg_toast_XXXXXX_idx
pg_toast_XXXXXX
というデータが見つかります。これって何でしょう?
無視してユーザ消してしまっていいんでしょうか?
0485nobodyさん
02/08/27 15:28ID:???pg_*テーブルはPostgreSQLの内部テーブルなんでユーザーを消しても平気。
TOASTが何かを知りたいなら↓。
http://www.jp.postgresql.org/projects/devel-toast.html
0486484
02/08/27 15:59ID:???でも、とあるテーブルのオーナを削除したらまずいんじゃないの?
と思って試してみたら
%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.2
02/08/27 23:49ID:yZsdlGNN0488nobodyさん
02/08/28 00:15ID:???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:???> 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:???マイナーバージョンアップは、PGDATA領域そのまんまでも
OK?
0491nobodyさん
02/08/28 08:46ID:???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:???http://www.postgresql.jp/document/pg721doc/user/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
0495nobodyさん
02/08/29 15:21ID:K7zpT3zeINSERT INTO "whatsnew" VALUES(
'2002-08-29',
'{"<a href="/">XXXX</a>を更新しました", "YYYY"}'
);
と書くと前半部分<a href="/が無視されます。
"のエスケープする方法しらないでしょうか?
0496nobodyさん
02/08/29 15:22ID:???0498nobodyさん
02/08/29 15:42ID:K7zpT3zeそれはやってみたんだけど、
テーブルの中身を確認したら無視されています。
0499nobodyさん
02/08/29 15:43ID:???0500497
02/08/29 15:55ID:???これじゃだめなのね? なんでだろうね。
あと、"と'を混在しているのはなぜ? 全部"でかいてみ。
0501495
02/08/29 16:08ID:???テーブルの中身は「{">XXXX</a>を更新しました","YYYY"}」です。
あと'と"を混合してるのは下のページの影響です。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/arrays.html
0502497
02/08/29 16:11ID:???> '{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
0503nobodyさん
02/08/29 16:28ID:???テーブルの中身も変わらず…。
0504497
02/08/29 16:30ID:???0505495
02/08/29 16:48ID:???update date,
content text[]);
こんな具合です。
0506497
02/08/29 17:03ID:???<a href="/"> の、/ って、エスケープ文字と同じじゃない?
だから、エスケープはこうならないかな?
> '{"<a href=\"\\\">XXXX</a>を更新しました", "YYYY"}'
0507495
02/08/29 17:11ID:???ERROR: parser: parse error at or near "'"
ためしにこっちもやってみたけど
'{"<a href=\"\/\">XXXX</a>を更新しました", "YYYY"}'
こちらも駄目。
0508495
02/08/29 17:32ID:???'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
とすれば、テーブルの中身は
「<a href=\"/\">XXXX</a>を更新しました", "YYYY"}」
となっていました。迷惑かけてごめんなさい。
0509497
02/08/29 17:50ID:???でも、解決したみたいなので良かったっす。
# これが MySQLスレだったらもっと良かったのに
0510495
02/08/29 17:53ID:???'{"<a href=\"/\">XXXX</a>を更新しました", "YYYY"}'
じゃなく
'{"<a href=\\\"/\\\">XXXX</a>を更新しました", "YYYY"}'
でした。
スレ汚し、スマンです。もうちょっと勉強してきます。
0511sas
02/08/30 04:37ID:T6Vbh/OnPostgresqlにログイン出来なくて困っています…。
postgresql-7.1.3 win32をインストールし、
initdb.exeを実行してデータベースを初期化し、
pgsvmgr.exeでデータベースサーバーを起動し、
psqlj.exeで、ホスト名localhost
ユーザー名 Administrator
パスワードはWindowsで管理者としてログインするときの
パスワードを入力しましたがログインできません。
色々調べてみましたが、原因がわかりません。
どうしたらいいでしょうか?教えてください。
0512nobodyさん
02/08/30 05:08ID:???0513sas
02/08/30 15:53ID:PK97+40Y使っているパスワードなので、
あってると思います。
0514nobodyさん
02/08/30 16:28ID:okP1fGcQそのまんまで他のクライアントからODBC接続(Accessでリンクする)はできないんでしょうか?
ODBC--呼び出しが失敗しました。
Could not connect to the server.
Could not connect to remote socket (#101)
っていうエラーがでるんですが・・・(Accessでリンクしようとした時)
0515nobodyさん
02/08/30 16:30ID:okP1fGcQ0516nobodyさん
02/08/30 18:15ID:???PostgreSQLのユーザーはWindowsのユーザーとは別。
pg_hba.confで検索しる。
>>514
Redhatは知らんが、デフォルトではTCP/IPでの接続はできない。
postgresql.confでtcpip_socket = trueする。
たぶん、パスワードとかの設定も必要だろうからその辺は適当に。
0517514
02/08/30 19:17ID:okP1fGcQうおおおおおお
のた打ち回ってた問題が解決したっ!
あんた神か!? ありがとう!
0518nobodyさん
02/08/30 20:44ID:8xSHI6ux0519nobodyさん
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:???operator < (text[], text[]) が無いのが原因。
自分で create operator してやればいいんじゃない?
でも、配列の各要素を別の行にできないかも検討してみるといいかも。
他のDBMSへも移植しやすくなるし。
0522nobodyさん
02/08/31 11:05ID:McY4kGnjテーブル作るときにデフォルトのSQL_ASCIIってのだと文字化けしてるんで
EUC_JPで作り直したらこんどはWebで表示したときに文字化けるように
なってしまって・・・どうすればいいんでしょうか・・・。
0523nobodyさん
02/08/31 11:09ID:Eh4H/Twd文字コードが統一できていないから化けるのだと思われ。
HTMLの文字コードをEUCにするか、PosgreSQLから出したデータをSJISなどに変更しろ。
0524nobodyさん
02/08/31 17:32ID:???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
0527123
02/09/01 02:40ID:Rn3wDJdFSQLは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:???ストアド作るごときエディタでええやん。
頭ん中で流れ考えるんだよ(w
それが面倒ならmssqlserverでも買ってなさいってこった。
pgaccessでやれることが限界では。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/app-pgaccess.html
テキストベースでできた方が何かと便利。
遠隔操作とかにも都合がいいし、テストをちょちょっとスクリプトで書いたり。
0529522
02/09/01 18:41ID:/oI3M69SPosgreSQLから出したデータをSJISなどに変更
ってどうやるんでしょうか・・・
0530nobodyさん
02/09/01 21:06ID:???0531522
02/09/01 23:39ID:/oI3M69Spsqlで
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
なんてしちゃった場合、元のラージオブジェクトはどこに行ってしまうのでしょう?
自動的に削除されるのでしょうか?ゴミとかは残りませんか?
0533522
02/09/01 23:50ID:/oI3M69S0534nobodyさん
02/09/06 02:31ID:tscmWiVv1カラムに1Gがのデータを入れると、8kのカラム容量制限に引っかからないですか?
0535nobodyさん
02/09/06 08:36ID:KP0wE/mN8kのカラム容量制限 は、7.1 で解決済み。
最新版使ってれば全く問題ない。TOAST という技術。
私はメールの本文とかを丸ごと1カラムに格納してる。
0536ななしし
02/09/06 12:16ID:o0uKxXbL残ります。
lo_unlinkをかけてあげましょう。
0538nobodyさん
02/09/06 18:21ID:6cS1MLb+ありがとうございます。
助かりました。
05398月のクリスマス ◆zzfy/JR2
02/09/06 18:37ID:zUklKDWI$result=pg_exec("select * from nwpersonal ");
を実行すると下記のエラーが発生するのですが
どうしたらよいのでしょうか?
分かる方よろしくお願いします☆
Warning: PostgreSQL query failed: ERROR: nwpersonal: Permission denied.
0541nobodyさん
02/09/08 09:08ID:???0542nobodyさん
02/09/08 12:44ID:???0543nobodyさん
02/09/09 01:15ID:Ek+d2LV7件数は1万件以上ですが、テキストファイル保存に比べて、
パフォーマンス上問題はないでしょうか?
0545nobodyさん
02/09/09 20:33ID:???しかし、作り込まれたRDBMSよりパフォーマンスが出るフラットファイルの
入出力を作るのは至難の技。
それに、ふつーに作れば、ネットワークの帯域の方がボトルネックになって、
I/Oなんてどっちもどっち。
イントラとかなら別だが。
0546nobodyさん
02/09/10 09:52ID:VSIVhwr4普通のスレッド型掲示板です。
スレッドを表示する場合はスレッドIDが一致するものだけ取り出そうかと。
0547nobodyさん
02/09/10 17:03ID:20uIzqy9Pear 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自分のイメージ的には、JavaのJDBCの様に使いたいのです。
よろしくお願いします。
0549nobodyさん
02/09/10 22:04ID:???日付のフォーマットが問題なら、
フォーマットするwrapper関数みたいのを作ればいいじゃん。
100% RDBMS依存を無くしたいなら PEAR に contribute しる。
0550nobodyさん
02/09/10 22:55ID:ecEmpk8F日付をフォーマットしたいのか?
to_char() 使え。逆の関数もあるぞ。
Postgres 提供の関数だから、SQL 中に記述できるぞ。
0551nobodyさん
02/09/11 06:26ID:MyJQslI1PostgreSQLはよくわからんのだが、
date("Y-m-d H:i:s",time())
DATE型は「年月日」までじゃないか?入力形式。
H:i:s は無視されるだろ。つか「フィールドの型がちがうぞ!エラー」じゃないか?
時分秒を扱うならTIMESTAMPにすれば?
0552nobodyさん
02/09/12 03:22ID:r6MxR56R0553nobodyさん
02/09/12 11:57ID:???0554nobodyさん
02/09/12 12:18ID:r6MxR56Rデータファイルはどこにあるの?
0555nobodyさん
02/09/12 12:43ID:???0556nobodyさん
02/09/13 17:18ID:39GWJCRQ平分パスワードで接続できるのですが暗号パスワードで接続できません。
つまりpg_hba.confでcryptとした後接続できません。
どうすればいいんでしょうか?
そもそもパスワード暗号化は可能でしょうか?
0557nobodyさん
02/09/13 20:30ID:???ドキュメント見れ。
0558557
02/09/13 22:28ID:???生パスワードとMD5でエンコードしたのしかサポートしてないんだね。
TODOリストみても「やる気有りません」ってかんじでにんともかんとも。
src/interface/odbc/connection.c
src/interface/odbc/TODO.txt
というわけで、ODBCつかって平分のパスワードが嫌ならmd5を使えって事で。
0559nobodyさん
02/09/17 10:12ID:???うちはcse使ってるんですが、やっぱりcryptが使えないです。
pg_hba.confでpasswdに設定してファイル名を指定しない場合は
pg_shadowからパスワードを読むのですが、
暗号化されているのかどうかはなはだ疑問です。
0560nobodyさん
02/09/17 18:00ID:???0562nobodyさん
02/09/20 18:55ID:/MLJ70M7オラクルやSQL Serverにはあって重宝していたんですが・・・
0563nobodyさん
02/09/20 19:58ID:M7U2JFRIcron + psql じゃダメ?
0565ID 変わってるだろうけど、563
02/09/21 00:40ID:NjgR42bS少なくとも、別ファイルに記述した SQL を
psql に読ませて実行することはできる。
方法はマニュアルに書いてあるから調べてごらん。
私の場合、テスト用 DB 構築 SQL を書いたファイルを用意して、
テストするたびに CRAETE TABLE からやってる。
0566名無しさん@XEmacs
02/09/21 01:35ID:???0567nobodyさん
02/09/22 21:46ID:6gZmFq4J0568nobodyさん
02/09/22 22:16ID:auOB9C4fPreferencesの設定が保存されなくなってしまいました。
以前のWindowsNative版の時は設定保存できましたが、
Cygwinにしたら保存できなくなったようです。
お助けください。
0570nobodyさん
02/09/25 01:31ID:???0571nobodyさん
02/09/25 18:44ID:GgIwIpkD頑張ってるんですが、JDBCの部分でつまづいてしまっています。
jdbcのディレクトリでmakeすると、postgis.jarができるようなことが
マニュアルに書いてあるのですが、何故かできません。
(http://postgis.refractions.net/docs/x168.html)
makeは問題なく完了しているようなのですが…
どこが問題なのでしょうか…?
0572nobodyさん
02/09/25 21:21ID:???CGI+PostgreSQLで遊んでみようとおもってるのですが、
データ更新中 or セットの2つのテーブルのうち1つだけ
更新した後にブラウザの停止ボタンを押した場合とか
どうなるんですか?
0573nobodyさん
02/09/25 21:36ID:???0574nobodyさん
02/09/25 22:14ID:???0576nobodyさん
02/09/27 00:15ID:???___|____
aaa|mona
aab|mona
aac|mona
aaa|giko
aab|giko
abc|mora
というテーブルでaaa aab aacを指定するとmona(だけ)を表示するような
selectの書き方を教えてください。
0577nobodyさん
02/09/27 00:30ID:???どういうテーブルか説明しないで「というテーブルで」ってキミ!
0578nobodyさん
02/09/27 00:37ID:???>577
スミマセン。
何を説明したらいいのか分かりませんが。。。
テーブル名、カラム名は何でもいいです。
table baka ( foo text, bar text )
0579hmk
02/09/27 00:51ID:QE9TB9SP>aaa aab aacを指定すると
の意味が分からない。もっと具体的に書きなさい。
0580576
02/09/27 01:11ID:???分かると思ってハショりすぎました。教えて君の悪いパターンですね。
スミマセン。
select bar from baka where foo ~* '^aaa'とかするとmona gikoが表示されますよね?
これをaaa aab aacをAND検索してmonaだけがひっかかるようにしたいんです。
PerlでPgを使ってるので外部プログラムを使ってAND検索を実現する方法でもいいです。
0581hmk
02/09/27 01:24ID:QE9TB9SPANDじゃなくてOR検索でしょ。。。
SELECT bar FROM baka WHERE foo='mona' AND bar IN ('aaa','aab',aac');
----
mona
mona
mona
SELECT DISTINCT bar FROM baka WHERE foo='mona' AND bar IN ('aaa','aab',aac');
----
mona
加茂。
■ このスレッドは過去ログ倉庫に格納されています