PostgreSQL
レス数が1000を超えています。これ以上書き込みはできません。
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
0002名無しさん@お腹いっぱい。
2001/05/10(木) 12:18ID:???0003名無しさん@お腹いっぱい。
2001/05/10(木) 13:15ID:xUOtbAIE話題を書き込むときに、上の関連スレッドだと、書きづらいので
スレ立てました。
0004名無しさん@お腹いっぱい。
2001/05/10(木) 13:32ID:???2. パフォーマンスチューニングの話題
3. コマンドの使い方に関する話題
4. 管理の話題
5. リリース・ニュースの話題
6. 雑談
とかの話題がここに集まれば、と思うのですが。
0005弐ch編者
2001/05/10(木) 18:22ID:ch.0E1QIperlでDBD::Pgモジュールツカーテ
Postgresいろいろいじてる初心者なんですが
シリアルタイプのデータてゆーのつかってみたいんですが
まぁID番号として振りたいわけなんですが
id_seqっていう名前のシーケンス作っておいて
$conn->do("insert into test values(nextval('id_seq'))");
とやってるんですが実際何番がわりあてられたかってのを取得したいんですが
どうすればいいんでしょう。
0006弐ch編者
2001/05/10(木) 18:23ID:ch.0E1QIあ、
$conn->do("insert into test values(nextval('id_seq'))");
の前には
$conn = DBI->connect("dbi:Pg:dbname=$dbname", "", "");
をやってます(ま、あたりまえか
0007弐ch編者
2001/05/10(木) 18:24ID:ch.0E1QIあ、
$conn->do("insert into test values(nextval('id_seq'))");
の前には
$conn = DBI->connect("dbi:Pg:dbname=$dbname", "", "");
をやってます(ま、あたりまえか
0008弐ch編者
2001/05/10(木) 18:25ID:ch.0E1QIあ、
$conn->do("insert into test values(nextval('id_seq'))");
の前には
$conn = DBI->connect("dbi:Pg:dbname=$dbname", "", "");
をやってます(ま、あたりまえか
0009名無しさん@お腹いっぱい。
2001/05/10(木) 18:36ID:???同一セッション内であれば、nextval('id_seq')の後ならcurrval('id_seq')で
取得できます。
nextval('id_seq')しなければcurrval()は使えません。
0010名無しさん@お腹いっぱい。
2001/05/10(木) 20:38ID:xUOtbAIEAがBに依存していると言う場合、Bを再作成しちゃうとAが
動かなくなったりしますよね。
これって、何か解決方法は無いんでしょうか?
Aを作り直す以外に。
今日、これで大ポカをやってしまい、DBオブジェクトの
xrefでも作ろうかと思ってるんですが、ひょっとして
既に存在したりします?
0011電動ナナシ
2001/05/11(金) 12:22ID:???create view hogeview;
drop table hoge;
create table hoge;
すると、hogeview がダメになるって話だよね。
オブジェクトを作り直すと oid が変わるから、って理由だっけ?
そうだとしたら無理だろうね。
自分は直接コマンドを打たずに、スキーマ生成スクリプトを使うようにしている。
drop view hogeview;
drop table hoge;
create table hoge;
create view hogeview;
という内容のファイルを作って、スキーマを更新するだびに psql -d DB -f hoge.sql
という感じで流し込む。データの移行が必要なら、
drop table hoge;
create table hoge;
のところを
alter table hoge rename hogehoge;
create table hoge;
insert into hoge select ...(新しいスキーマにあわせる)... from hogehoge;
という風にすればいい。
0012名無しさん@お腹いっぱい。
2001/05/14(月) 19:19ID:YqqCadMo情報、さんきう。
create table dbobjs (
parent text,
child text
);
というテーブルを作って、
table - view
table - function
function - view
function - function
の依存関係をつっこんで、table Fooを変更したときに何をどの順番で
作り直せば良いのかを出力するモノを作ろうとしたんですが、挫折しました(^^;
0013名無しさん@お腹いっぱい。
2001/05/14(月) 19:21ID:???存在するってヤですよね。
どうにかならないのかなー?
0014電動ナナシ
2001/05/15(火) 15:15ID:???hoge に依存する View を作った後で
drop table hoge;
create table hoge;
と作り直したとして、この hoge が、たまたま名前が一緒であるだけの
全然違う意味を持つテーブルである可能性は常にあるからね。勝手に
view を有効にしたらそれこそ迷惑じゃないかな。
0015名無しさん@お腹いっぱい。
2001/05/15(火) 17:06ID:2pI6By2w00161
2001/05/15(火) 18:05ID:flqm6i8Y>どうにもならないし、どうにかしたらまずいだろうね。
でもOracleはそのView定義に問題がなければ、何事も無かったように
検索できるよ。
>勝手にview を有効にしたらそれこそ迷惑じゃないかな。
うーん、迷惑な場合もあれば、迷惑じゃない場合もありますよね。
「カラムの追加」なんかは、既存のDBオブジェクトには関係ない
だろうし。
せめて「依存しているオブジェクトがあります」くらいの警告が
欲しいです。SQL92の’Restrict'が指定できればいいんだけど。
0017電動ナナシ
2001/05/15(火) 20:27ID:???なるほどね、Oracle は名前にのみ依存しているんだ。
# SP みたいに依存性管理をきちんとやっているのかな?
警告については同意。FKey については警告してくれるのにね。
DROP CASCADE とかサポートしてくれるとかなり違うよね。どうせ無効に
なるなら自動的に消してくれって感じもする。まあ要望があるならここで
愚痴たれずに自分で実装しろって話になるから、そんな実力を持っていない
漏れは黙っているしかないんだけど。
00181
2001/05/16(水) 10:11ID:???>なるほどね、Oracle は名前にのみ依存しているんだ。
># SP みたいに依存性管理をきちんとやっているのかな?
んと、SPがなんだかわからないので、はずしてるかもしれないけど、
依存性管理はきちんとやってます。
オブジェクトの状態(Valid or Invalid)をシステムカタログに持っていて、
依存するオブジェクトが削除された場合は、即座にInvalidになります。
だから、Invalidなオブジェクト一覧、なんてのも簡単に検索できます。
また、「オブジェクトのコンパイル」という概念があり、「リコンパイル」
すれば、依存関係をチェックし、問題なければValidになります。
InvalidなViewにアクセスすると、自動的にコンパイルされ、Validになれば
通常どおり検索でき、Invalidならエラーになります。
・・・って感じですね。
>まあ要望があるならここで
>愚痴たれずに自分で実装しろって話になるから、そんな実力を持っていない
>漏れは黙っているしかないんだけど。
それは僕も同様。まあ、いいじゃないですか、愚痴言い合いましょうよ。
MLはそんな雰囲気じゃないし。
# 電動ナナシ氏の一人称が「漏れ」だということを知り、ちょっとショック(w
0019電動ナナシ
2001/05/16(水) 13:26ID:???あまり一般的でなかったか?すまぬ。
そういえば Schema Manager で Valid/Invalid とかいちいち見ていた記憶が
よみがえってきた。
# 最近 Oracle 触ってないから忘れてるよ・・・。
00201
2001/05/16(水) 13:55ID:???何かSybaseのアレとかMS SQL Serverのソレが強烈に頭に残ってたので
???状態でした。
そういう意味で言うと、Oracleのパッケージの思想は秀逸ですよね。
PostgreSQLにとっては無いものねだりなんですが。
0021電動ナナシ
2001/05/16(水) 15:30ID:???Ada の Package/Interface がそのまんま引き継がれた感じだね。
PostgreSQL でも PL/Perl を使って Perl のパッケージ機能?を
使えば似たようなことができるんじゃないかと愚考してみたり。
# Perl はマジで知らん・・・。
00221
2001/05/16(水) 16:47ID:???僕はRubyな人だから、PL/Perlがあることなんてすっかり忘れてた。
PerlはPerl4までの知識しかないし。
暇が出来たら調べて見よう。
00231
2001/05/17(木) 13:16ID:vuz.jAiQがようやく出版されるようです。
通称『シーラカンス本』というやつですね。
http://www.cbook24.com/bm_detail.asp?sku=01051501
対応バージョンも7.1.1で、うれしい限りです。
00251
2001/05/17(木) 18:40ID:???うーん、あの程度のマニュアルじゃ何も分からない。
引数を$_[0], $_[1]などと参照できるのと、タプルをハッシュで受け取る、
ってことしか書いてない。あ、外部ファイルへの書き込みは出来ない
というのもあったけど。
ソースをちらっと眺めたら、トリガーではPL/Perlは使えないような
コメントもあったし、一体PL/Perlって何の意義があるのかわからなかった。
今後発展していくのかな。
0026名無しさん@お腹いっぱい。
2001/05/25(金) 13:08ID:Tkv4/1zU例えばperlから
$hoge="insert into hoge values('ほげ')";
$result = $conn->exec($hoge);
とした場合、もし追加できないという場合のエラーメッセージなどは
どこで取得するのでしょうか?
0027名無しさん@お腹いっぱい。
2001/06/14(木) 08:12ID:N.VaDaWUODBC--呼び出しは失敗しました。
Could not connect to server.
Could not connect to remote socket.(#101) [Microsoft][ODBC Driver Manager]
と言われてしまいます。
どうしたらよいのでしょうか?
#これだけでは情報が足りないのかもしれませんが、
#しかし、どういった情報を提示すれば皆様にお助けいただけるか分からないため、
#それもお教えねがえますでしょうか?
0028名無しさん@お腹いっぱい。
2001/06/14(木) 08:46ID:???エラーメッセージ読めば分かるだろ。
0029名無しさん@お腹いっぱい。
2001/06/14(木) 15:07ID:???聞いたことないでしょうか?
0030名無しさん@お腹いっぱい。
2001/06/14(木) 15:08ID:???聞いたことないでしょうか?
0031名無しさん@お腹いっぱい。
2001/06/14(木) 16:00ID:bZl.pTIs003229
2001/06/14(木) 16:15ID:???>>31
破損時にinsertしたのがおおよそ4k。発生しない場合もあります。
何kだから発生するというものではないようです。
0033名無しさん@お腹いっぱい。
2001/06/14(木) 17:06ID:bZl.pTIsいけるはずだったと思うよ。
昔掲示板作ったけど内容の部分を4kで規制してるが問題なく動いてる
003429
2001/06/14(木) 17:54ID:???起こすと発生するようです。「ようです」としか書けないヘタレで申し訳ありませんが。
003529
2001/06/14(木) 18:02ID:???Apache/1.3.20
PHP Version 3.0.18-i18n-ja-2
PostgreSQL 6.5.3
003627
2001/06/14(木) 18:10ID:ObjdY6qgの原因が分からないもので・・・。
「詳解PostgreSQL入門」の通りにやったはずなのですが・・・
003727
2001/06/16(土) 06:00ID:1YgBviPk0038名無しさん@お腹いっぱい。
2001/06/18(月) 00:16ID:4Y6BFwKUそのPostgreのバージョンはvacuumするとデータが壊れちゃう
バージョンだけど、そのせいじゃないの?
vacuumかけると、データが壊れるらしい。。。
0039名無しさん@お腹いっぱい。
2001/06/19(火) 00:16ID:???0040名無しさん@お腹いっぱい。
2001/06/20(水) 18:41ID:CEGcishk[pgsql-jp 21916]
> 主キーの1つを検索する場合にはインデクスの全体がオンメモリに入っていな
> くてもそれほどパフォーマンスが落ちるとは思えません。たとえば1ページに
> 200件のエントリがあるとして、3回アクセスで 200×200×200で8,000,000件の
> データを網羅できますから、データ本体へのアクセスを含めてせいぜい4回のディ
> スクアクセスで済むはずです。200件というのは大雑把に言っただけで根拠があ
> る数字ではありませんが、仕組みを理解すれば30万件を過ぎたら急にパフォーマ
> ンスが落ちるということが起こりにくいと推測できます。ただしこれはB-Treeが
> バランスよく構成されている場合の話です。
マジすか、これ?
俺の想像していたのと全然違う・・・。
0041名無しさん@お腹いっぱい。
2001/06/20(水) 18:49ID:628tfmwgどう想像してたの
0042夜勤 ★
2001/06/20(水) 18:54ID:???0043名無しさん@お腹いっぱい。
2001/06/21(木) 10:46ID:oxRjCmRE2^22 < 8,000,000 < 2^23ですよね。
だから、800万件のインデックスアクセスは、最大23回のアクセスが必要。
平均は・・・うーん、解らない。12回、じゃないよね。
ただし、同じブロック内にn回目、n+1回目、・・・がある場合もあるからディスク
アクセスの回数はそれなりに減るけど、「せいぜい4回で」というのはどうも
納得できません。
0044名無しさん@お腹いっぱい。
2001/06/22(金) 11:27ID:WswC8UUcアルゴリズム辞典でも調べるべし。
0045名無しさん@お腹いっぱい。
2001/06/22(金) 12:03ID:4sT6WJJUでも、さらに疑問が。
> 1ページに200件のエントリがあるとして
これは一体どういう意味なんでしょう?N=100ということ?
また、「せいぜい4回のディスクアクセス」というのは、「木の高さはせいぜい4である」
ということですよね?
何故これが言えるのでしょう?
0046名無しさん@お腹いっぱい。
2001/06/25(月) 17:09ID:ejiw8dks0047rissen-truchi
2001/07/13(金) 03:47ID:IdnCE2mYredhat7.0+postgresql7.0でpgaccessを使おうと思いました。
まずlinux版を導入しようと思って、/usr/local上にpgaccessを展開して、
/usr/binにシンボリックリンクを張りました。「pgaccess testdb」で
起動しようとしたところ、invalid command name "image"とのエラーが。
/usr/local/pgaccess/main.tclの5行目のimageというコマンドが実行
出来ていないみたいです。
とりあえず問題は棚上げしてWindowsでpgaccessを導入しようと思いました。
Windows2000にtcl/tkを入れてpgaccessを導入しました。main.tclを
起動するとpgaccessが起動したのですが、「database」「open」で繋がっている
linuxマシンに接続しようとしたら
Is the postmaster running (with -i) at 'localhost' and accepting
connections on TCP/IP port '5432'?
とエラーメッセージが出ます。
postmasterに-iは付けて起動しているのでその点は問題なさそうなので、
localhostの名前が違ってるかport5432が閉じているかという所でしょうか。
ちなみにlinuxでユーザ名postgresで接続しているときに、コンソールで
[postgres@localhost postgres]$と表示されていたらWin2000からの接続先の
名前はlocalhostでいいんですよね?
そうするとport5432が開いているかどうかも確認する必要ありでしょうか。
linux版でもwindows版でもどちらでもいいので、pgaccessが動くようにしたいです。
どなたか上記書き込みから何か分かる事は無いでしょうか。
0048名無しさん
2001/07/13(金) 04:44ID:eePtt3OA開発するぞ(゚Д゚)ゴルァ
http://www.hi-ho.ne.jp/tsumiki/
他にもいいのが有ったら教えれ。
0049名無しさん@お腹いっぱい。
2001/07/13(金) 13:29ID:???どうやればできますか?
0050名無しさん
2001/07/13(金) 14:06ID:???textの検索は、正規表現使って、WHERE mojiretsu ~* '.*h[ao]ge.*'とするか、
それで速度に不満が出れば、Chasenとかで単語を抜き出してインデックス作ったり、
全文検索ソフトのNamazuと組合わせたりするのがいいと思う。
自信無いけどな。
005149
2001/07/13(金) 22:56ID:TzQ65wDI取り敢えず7月分ってのは
select * from hoge where date =< '2001-07-01' and date > '2001-08-01'
って感じでやりました。
全文検索はソースがあるページとかないですかね?
0052名無しDB
2001/07/13(金) 23:57ID:???それをやるならnamazuのがいいよ。
Postgreでやると、ホントに、1文字づつ全文検索する
ことになるから、文章の検索ならnamazuだね。
ちなみに、もし Postgreを使う場合のやり方は
nikki_bunsyo like '%日記%'
とかって書くよ。この場合 nikki_bunsyo 項目の中で
日記の文字がつくレコードが全部選択されるよ。
でも、この方法は負荷がメチャ高いからほどほどに。。。
005350じゃないけど
2001/07/14(土) 07:25ID:???それでもあえて%を薦めるのは速度のため?
0054名無しさん@お腹いっぱい。
2001/07/24(火) 02:04ID:goR17G.AVisioProEditionを使ってみたのですが、MSAccessやOracleには対応しているそうですが、
Postgresには対応していないみたいで。。。
0055名無しさん@お腹いっぱい。
2001/08/05(日) 04:08ID:qlDpZz.Iそのときにデフォルトで登録された列(というか、シリアル値のID)が何番かを、
参照するにはどうすればいいのでしょう?
0056名無しさん
2001/08/05(日) 04:34ID:jKHgi2nIじゃねいの(´Д`)y-~~
0057名無しさん@お腹いっぱい。
2001/08/05(日) 05:41ID:qlDpZz.Iところで、知りたい列がシリアルではない場合、
何が入れられたかを参照する方法はありますか?
0058コメント無しさん
2001/08/05(日) 06:17ID:???対応してるっていっても、ERからテーブル作成のスクリプト吐いてくれる
だけで。
それが使えるのも結局最初だけだから、Visioでいいんじゃない?
0059さる
2001/08/05(日) 06:30ID:???ちなみに、TODOテーブルに登録されている「TODO」のタイトル、本文、および、ジャンル名を表示するSQLで、
ジャンル名は別テーブルGENREからIDでひっぱっています。
で、IDが割り当てられていないときのみ「未分類」としたいのですが
SELECT a.title, a.body, b.genrename
FROM todo a, genre b
WHERE (a.todogenreid = b.genreid)
UNION
SELECT a.title, a.body,'未分類' AS genrename
FROM todo a
WHERE (a.todogenreid = NULL)";
0060電動ナナシ
2001/08/05(日) 17:48ID:T/JQahRQPostgreSQL 7.1 以降なら、outer join を使えばいい。
SELECT a.title, a.body, NULLIF(b.genrename, '未分類')
FROM todo a LEFT OUTER JOIN genre b ON a.todogenreid = b.genreid;
0061名無しさん@お腹いっぱい。
01/08/30 23:08ID:M8F0Dr3g0062名無しさん@お腹いっぱい。
01/08/30 23:27ID:FDHNcC5c0063名無しさん@お腹いっぱい。
01/08/30 23:38ID:lbHU/sz6------
1|あ
2|い
3|う
4|お
なんてテーブルがあったとします。
カラムBのデータのみ配列に入れたい場合、
つまり、array(あ,い,う,え,お)としたい場合は
どうしたら良いのでしょうか?
行の配列格納なら簡単に可能ですが、列の配列格納は
ひとつずつ読み込んでいくしかないのでしょうか?
0064名無しさん@お腹いっぱい。
01/08/31 00:18ID:cTlje8/Qarray(あ,い,う,お)
でした。
0065名無しさん@お腹いっぱい。
01/08/31 06:42ID:8Ot53tF20066名無しさん@お腹いっぱい。
01/08/31 09:36ID:OPUkQPbU行の配列格納はpg_fetch_rowとか使えばできます。
0067名無しさん@お腹いっぱい。
01/08/31 10:13ID:8Ot53tF2pg_fetch_array()をループで回すのが普通みたいですね。
0068名無し三脚
01/08/31 10:36ID:N78y3VFEftp://ftp.sra.co.jp/pub/cmd/postgres/pgstattuple/pgstattuple-0.1.tar.gz
漏れは厨房なので、ここの偉い人の感想キボンヌ
0069名無しさん@お腹いっぱい。
01/09/05 20:10ID:dYMWGvtU0070名無しさん@お腹いっぱい。
01/09/05 20:38ID:iE4iOxe.0071名無しさん@お腹いっぱい。
01/09/06 15:51ID:a4GcKC6.タプルって意味なんですが・・・
カラム(行数)=タプルって言う解釈でいいんでしょうか?
0072コピペでGo!
01/09/06 16:28ID:8PdBtivgカラム <> タプル
タプル = 行
http://www.rccm.co.jp/~juk/pgsql/faq-japanese.html
より (っていうか、あんたのディスクにも入ってない?)
4.18) PostgreSQL で使われるいくつかの用語の意味は何ですか?
いくつかのソースコードや古い文書の中には、それぞの専門分野の中でもっと一般的に
使われる専門用語が使われています。
・ テーブル(table)、関係(relation)、クラス(class)
・ 行(row)、レコード(record)、タップル(tuple)
・ 列(column)、フィールド(field)、属性(attribute)
・ 取得(retrieve)、選択(select)
・ 置換(replace)、更新(update)
・ 追加(append)、挿入(insert)
・ OID, 連番(serial value)
・ ポータル(portal), カーソル(cursor)
・ 領域変数(range variable)、テーブル名(table name)、テーブル別名(table alias)
一般的なデータベース用語のリストは: http://www.comptechnews.com/~reaster/dbdesign.html で見つけられます。
0073名無しさん@お腹いっぱい。
01/09/06 17:19ID:l3o4Kuogわかりました。ありがとうございました。
0074名無しさん@お腹いっぱい。
01/09/07 15:54ID:H1pdW9FEpgbench hoge -t 1000 と実行した所,
number of clients: 1
number of transactions per client: 1000
number of transactions actually processed: 1000/1000
tps = 26.423163(including connections establishing)
tps = 27.191780(excluding connections establishing)
となりました。つまり、1000トランザクション実行し終わるのに
大雑把な計算で、1000/27=37秒かかるという認識で宜しいのでしょうか?
当方、CPU:P2-233,メモリ:64M,postgres7.1.1での結果ですが、ミドルクラス
PCではどのくらいになるか教えて頂ければ、買い替えの参考になり非常に助かります。
0075名無しさん@お腹いっぱい。
01/09/07 16:21ID:8FwfcxVs(間違っていたらスレッドを教えて下さい)
update AAA set Fn = "hoge"
where Fn is null;
Fnに複数のフィールドを一度に設定したいのですが可能でしょうか。
フィールドが100個くらいあるデータで、データがnull値の時は
hogeに置き換えろって事なんです。
一度に設定できないと、100回フィールド名を変えなければならないのでかなり大変な作業になります。
どうかお願いします。
007675
01/09/07 16:25ID:8FwfcxVsF1〜F10まで くらいの間隔なんで。
0077名無しさん@お腹いっぱい。
01/09/07 19:13ID:bNMP41Og0078名無しさん@お腹いっぱい。
01/09/07 21:10ID:fbb/xWKg0079名無しさん
01/09/07 22:02ID:iS1WYxjU何がやりたいのかよく分からんが、default値使えないの?
0080名無しさん@お腹いっぱい。
01/09/09 01:00ID:???表の各列の型情報一覧を表示させるコマンドってありませんか?
すぐ忘れてしまいます。
>>75
同じ事態になりました。時間がなくて、copyコマンドで書き出してnkf -sして
ftpでwinに持っていってエクセル(アクセスは無理)で「置き換え」で空白をNULLにしてタブ区切りのテキスト出力してlinuxに再び持っていってnkf -eして
copy hogetable to '/tmp/hoge.txt' with null as 'NULL';
っつーアホなことをしました。
あーあ。
008180
01/09/09 01:02ID:gDhosphoto じゃなく fromだ。
鬱氏
0082名無しさん@お腹いっぱい。
01/09/10 07:42ID:???サーバーならCygwinで動かすのとWinネイティブのがあるけど
ネイティブなのは1セッション限定なので遊びにしか使えん
Cygwinのはまだマシだけど運用は無理だろうな
0083名無しさん@お腹いっぱい。
01/09/10 11:16ID:bMbW9tU6どこも不景気なのね。
0084名無しさん@お腹いっぱい。
01/09/10 14:48ID:CV8.18JQありがとありがと
自マシンでテスト用だったら使えるって感じなのかな
0085名無しさん@お腹いっぱい。
01/09/13 20:31ID:h.lgqqlIあと・・・
pgnmz.cが使えそうな感じだとreadme.txtから読み取れたんでコンパイルしようとしたんですが・・・
VARSIZE(retp) =
ってやってる行全部で左辺値が変だって言われてコンパイル失敗するんです・・・。
これのコンパイル方法誰か教えてお願い。。
環境:pg/7.1.2
なまず/2.0.7
gcc/2.95.2.1
0086名無しさん@お腹いっぱい。
01/09/13 22:53ID:Nq5e6DE2pgnmz.cってどういうものですか(汗?
0087名無しさん@お腹いっぱい。
01/09/14 10:49ID:VVeFQun.りーどみーからこぴぺ
■PGnamazuとは
PostgreSQLから,namazuの全文検索結果を参照するためのユーザー定義関数です。
これのソースコード。
うーん、まだコンパイルできないよう
008885=87
01/09/14 12:16ID:???../intl/hogehoge.o \
を全部カット
VARSIZE(retp) =
となってる部分を
VARATT_SIZEP(retp) =
に置換
で一応コンパイルは通った。さて、、、後はぽすとぐれすから検索出来ればいいんだが。。
これで駄目ならあきらめよーっと( ・∀・)y━~~
0089名無しさん@お腹いっぱい。
01/09/14 19:32ID:???まず、何故かintl/以下の*.oが作成されなかったので、ネットで強引に.oファイルを拾ってきてこぴぺ(ぉぃ
なまずは2.0.5を使用。
これで一応psqlから関数が使えるようになりました。
が、まだ検索がうまく・・・・・・・
(−_−)鬱だし脳
0090ななしさん
01/09/14 21:44ID:I5Sj1HiAでも、PostgreSQLって、PHPとかPerlとかと併せて使うのがメジャーだけど
それでもPostgreSQLからnamazuの検索結果を参照するメリットってどこにあるのかな。
0091名無しさん@お腹いっぱい。
01/09/15 01:00ID:6vm7gPGIどういう設計をすればいいのえしょう?
図書館みたいなn進法しか思いつかない。。。
0092電動ナナシ
01/09/15 02:19ID:41dU1HoUここを見るといいと思う。ちょっと古いが。
http://www.webreference.com/perl/xhoo/php1/
0093名無しさん@お腹いっぱい。
01/09/15 11:25ID:yhMUGX2Y見てる見てる。報告待ってる。
009591
01/09/19 22:42ID:kmLdS2pEありがとうございます。
なるほど、カテゴリについて、「おやカテゴリ」というフィールドを作るほうがフレキシブルですね。
ところで、もし1つのURLに対して、複数のカテゴリを割り当てる場合、
やはり、「カテゴリ割り当てマスタ」みたいなテーブルをつくって、
link_id category_id
---------------------
1 3
1 5
1 14
2 4
2 6
2 14
みたいにするのが順当なんでしょうか?
(自分にはそれしか思いつかない)
0096電動ナナシ
01/09/20 03:35ID:Mw5BZ/Isそれでいいでしょ。
テーブルのデータ量が気になるなら、ビットでカテゴリ表現することにして、
OR を取った値を入れてもいいかも。カテゴリが多いと使えないが。
ex.)
カテゴリA = 0x01
カテゴリB = 0x02
カテゴリC = 0x04
X というリンクがカテゴリ A と B に属するなら、カテゴリ値は 0x03
(0x01 | 0x02 なので) となり、Y というリンクがカテゴリ A と C なら
0x05 (0x01 | 0x04) ・・・という具合。
0097名無しさん@お腹いっぱい。
01/09/20 09:41ID:???それでいいと思うんだけど、
そのテーブル内容だと、カテゴリ14にリンク1とリンク2両方が
張られてるのってどうなの?
カテゴリテーブルに link_id フィールド作っちゃえばいい気もする。
009897
01/09/20 09:47ID:???電波入った。鬱。
0099電動ナナシ
01/09/21 02:35ID:FQe/4xL2流れていた。
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
0100名無しさん@お腹いっぱい。
01/10/27 23:32ID:???0101名無しさん@お腹いっぱい。
01/11/16 17:20ID:Di9IWgGXCOPY hoge from 'hoge2.csv' using delimiters ',';
みたいなんで、テキストファイルインポートする事って可能ですか?
0102名無しさん@お腹いっぱい。
01/11/16 17:35ID:???SERIAL っつても所詮は int4 なのでインポート自体は問題ない
けど、SERIAL 値の再設定はいるよ。
0103名無しさん@お腹いっぱい。
01/11/16 17:44ID:???SERIAL型の項目に適当に重ならない数字はめたらいけました。
通常のInsertのように自動的にNoをふらせてのインポートは
不可能なんでしょうか?
0104名無しさん@お腹いっぱい。
01/11/16 18:02ID:???例えば。
CREATE TABLE テーブル名 (カラム名 SERIAL);
すると実際には
CREATE SEQUENCE テーブル名_カラム名_seq;
CREATE TABLE テーブル名 (カラム名 INT4 DEFAULT nextval('テーブル名_カラム名_seq');
CREATE UNIQUE INDEX テーブル名_カラム名_key ON テーブル名 (カラム名);
と SQL を実行したのと同じ状態になる。
どういうことかわかってもらえるかな?
0105名無しさん@お腹いっぱい。
01/11/16 22:53ID:???postgresql.4dd.co.jpのホームページ:
http://www.jp.postgresql.org/
0106名無しさん@お腹いっぱい。
01/11/17 13:54ID:fXBlmqnN0107教えて君
01/11/19 15:44ID:???ちなみに PostgreSQL 7.1.3 上です。
0108名無しさん@お腹いっぱい。
01/12/05 18:50ID:???古い順番で100件をselectするのは
select * from hoge limit 100;
でOKですよね?
では新しい順番で100件をselectする場合はどうしてますか?
0109教えて君
01/12/05 19:42ID:???http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/sql-select.html
0110名無しさん@お腹いっぱい。
01/12/05 23:02ID:???それをみてもわからないのです。。。鬱
0111名無しさん@お腹いっぱい。
01/12/06 00:33ID:???そのページのORDER BYのとこを読め。
0112名無しさん@お腹いっぱい。
01/12/06 16:13ID:ZWim4af9検索でき、結果表示する方法とかないですかね??
namazuは、静的なページの検索のみなのかな?
0113教えて君2
01/12/06 20:41ID:6hzVUgauVarcharの列に
snprintfでSQL文を作り登録しているのですが
psqlから登録した文字列を条件でセレクトしてもデータを取得できないのです。
Cのchar型の終端文字列に問題があるのでしょうか?
実際characterlengthで文字数を取得すると一文字多いのです。
0114名無しさん@お腹いっぱい。
01/12/06 21:03ID:???drop table発行しても、消えないテーブル(does not exist)
があります。どうしたら消せますか?
あと、大文字、小文字は関係あるのでしょうか?
OSはRedHat7.1 Postgres7.1です。
0115名無しさん@お腹いっぱい。
01/12/06 21:11ID:???権限がない or 大文字のテーブル名だから
基本的にCREATE TABLEコマンドを使って大文字でテーブルを作成しても小文字に直してくれます
が、odbcドライバとか使って仮に大文字のテーブル名になっちゃった場合は
テーブル名を小文字 or 2バイト文字のテーブル名に直した後データベースの再構築がいります
0116名無しさん@お腹いっぱい。
01/12/06 23:34ID:???DROP TABLE "OHMOJI";
何を基準に並べるのか知らないが、仮に登録日順(create_date)に並べたかったら
(昇順)SELECT * FROM hoge ORDER BY create_date LIMIT 100
(降順)SELECT * FROM hoge ORDER BY create_date DESC LIMIT 100
0118名無しさん@お腹いっぱい。
01/12/07 07:27ID:2/lCxAnu名前がどうしても思い出せません。
略称で、アルファベット3文字だと思ったのですが・・・
どなたかご存知ありませんか?
0119名無しさん@お腹いっぱい。
01/12/07 08:47ID:???http://www.hi-ho.ne.jp/tsumiki/
0120名無しさん@お腹いっぱい。
01/12/07 10:57ID:???ODBC経由でAccessとつなげるとかとか
0121名無しさん@お腹いっぱい。
01/12/07 19:58ID:XHyaWtTTその結果セットを返すにはどうやればいいんでしょうか。
関数内で SELECT TBL FROM HOGE; とか書いても
表示してくれません。
0122121
01/12/07 19:59ID:XHyaWtTT補足。
SELECT文は関数内でEXECUTEしてます。
0123親切な人
01/12/07 21:10ID:???ヤフーオークションで、幻の人気商品、発見!!!
今は無き「コピーガードキャンセラー」↓
http://page2.auctions.yahoo.co.jp/jp/auction/b18505597
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0124名無しさん@お腹いっぱい。
01/12/08 01:05ID:???遅くなりましたがありがとうございます。精進いたします
0125121
01/12/08 03:39ID:9UlfiqqN自己解決。
0126118
01/12/08 08:17ID:BnyHCSQgCSE(Common SQL Environment)のことかな?
そうそう、それです。ありがとうございます。
どっかのpostgres本でみかけたきになってて。。。
>>120
>ODBC経由でAccessとつなげるとかとか
それは、やってるんだけど、やはり制限があるから・・・
0127名無しさん@お腹いっぱい。
01/12/11 01:14ID:dPLgUoIjデータベースをpg_dumpで出力してテキストファイルに保存しました。
テキストファイルを別サーバーに移してpsql -f (ファイル名)で移しました。
sequenceのlast_valueが全て1にリセットされていて動かなくて困っています。
update文を使おうと思ったら変更できないとメッセージが返されました。
どなたかどうすれば変えられるか教えてください。
0128名無しさん@お腹いっぱい。
01/12/11 06:29ID:???pg_dumpしたらsequenceも保存してくれるはずだけどなあ。
sequenceの値を変更したいなら、
SELECT setval('sequence_name', newval);
みたいにするといいよ。
0129名無しさん@お腹いっぱい。
01/12/12 11:55ID:+eQJL9wJWin版ダウソしようとしてサイトをぐるぐる探したんですが、ダメでした。直リンお願いしますう。
0130名無しさん@お腹いっぱい。
01/12/13 02:25ID:???0131名無しさん@お腹いっぱい。
01/12/13 14:42ID:bfF3dg0dだれかサイト教えてヨ。
0132未定義の名無しさん
01/12/13 22:48ID:???ほらよ。
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
ただ、実用レベルではないな。環境によっては動かない。
(曖昧な表現でスマソ)
Winで実用的に使うなら、MySQL for Win32のほうがいいかも。
http://www.mysql.org/downloads/os-win32.html
あと、PostgreSQLでもMySQLでも、
http://www.hi-ho.ne.jp/tsumiki/
ここのCSEを併せて使うとベンリ。
各ソフトウェアの開発者に感謝して使えよ。
0133名無しさん@お腹いっぱい。
01/12/14 01:53ID:???本当に感謝しております。
0134名無しさん@お腹いっぱい。
01/12/14 18:35ID:???0135名無しさん@お腹いっぱい。
01/12/19 00:20ID:eyjDftvg> SELECT setval('sequence_name', newval);
おお、通りすがったら、ここ数日悩んでいた回答が...、ありがとう。
0136初心者
01/12/19 21:31ID:0XK3f5i/インストールしたのですが、Administratorでインストール
して、Administrator/そのパスワードで接続しようとしてい
るのですが「このシステムのカタログ(?)にはAdministratorは
存在しません」という英語のエラーが出てどうしてもうまく
いきません。
環境は Win2000 SP2 です。Winに関する知識は少々持ち合
わせていますが、Postgreについては厨なので、何かアドバイ
スいただけるようでしたらよろしくお願いします。
0137名無しさん@お腹いっぱい。
01/12/19 22:01ID:???じゃない?
psql -U pgsql template1してcreate user Administrator;でどうよ。
0138名無しさん@お腹いっぱい。
01/12/20 12:19ID:ehqpB6yMだけど、データ編集グリッドの動きが良くないぞ。
データ編集ソフトどっかに無いですか?
0139名無しさん@お腹いっぱい。
01/12/20 15:23ID:fwnRjdeO>ただ、実用レベルではないな。環境によっては動かない。
これについて詳しく知りたいです。
0140番組の途中ですが名無しです
01/12/21 01:46ID:???自分で評価しる
0141名無しさん@お腹いっぱい。
01/12/25 10:44ID:ZkkXZhFh0142番組の途中ですが名無しです
01/12/25 14:58ID:???>>141
漏れは、PostgreSQLとMySQLの両方をざっと評価して、
安定度でMySQL for Win32を選択したゾナモシ
0143名無しさん@お腹いっぱい。
01/12/25 18:03ID:MifQpswmつながりますか?
ミラーページはないのですか?
0144名無しさん@お腹いっぱい。
02/01/12 08:19ID:9xVpue2aこれって問題ですよね。
パスワードを設定してもしなくても何故かログインできてしまうのです。
これはどのように設定すればパスワードが有効になるのでしょうか。
Linux上ではpasswdコマンドでパス自体作成済みです。
0145名無しさん@お腹いっぱい。
02/01/13 22:45ID:NvlGFTwS0146名無しさん@お腹いっぱい
02/01/13 23:31ID:???ほい、Win32ネイティブ版らしい。
http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
でも、実験程度くらいにしか使えない模様。
http://www.s34.co.jp/~luster/pgsql/
に、Cygwin環境で動作するやつがある。
動けばこちらのほうがいいかも。
0147名無しさん@お腹いっぱい。
02/01/14 20:42ID:???強制的に IndexScan 使うように Query 発行できんもんかな
Oracle みたいに。
0148名無しさん@お腹いっぱい。
02/01/15 15:26ID:Rlrh+zWfデータベースのちゃんとした設計を勉強したいんですけど
お勧めの書籍ってあります?
PostgreSQL 以外の奴でももちろん可
もうちょっとスマートな設計を身に付けたいんで
0149名無しさん@お腹いっぱい。
02/01/15 15:53ID:EkJV4LyD0150名無しさん@お腹いっぱい。
02/01/15 16:01ID:???PostgreSQL:ポストグレス/ポストグレスエスキューエル/ポストグレエスキューエル/ポストグレスキューエル
0151名無しさん@お腹いっぱい。
02/01/15 17:29ID:???作者たちは「ポストグレス・キューエル」
て読んでいるみたいね。
0152名無しさん@お腹いっぱい。
02/01/18 15:44ID:VDCf4fwaインストールするとき、スーパーユーザーの名前変えてないの?
ふうん
0153名無しさん@お腹いっぱい。
02/01/18 18:48ID:???( ´ ・∀・`) へー
0154agege
02/01/19 02:27ID:ZUGdJ0ZNスーパーユーザ名を変えたところで解決にはなりません。
恐らく144の悩みはCGIからのDB操作が関連するためだと思われ、
そうなるとWWWユーザ名でアクセスすることになり、CGIを使う人
全てがアクセスできることを懸念していると思う。
解決法はちゃんとマニュアルに載っているのでシッカリ読むようにお奨めする。
結構しっかり書かれているのでここで説明するのは差し控えておこう。
0155名無しさん@お腹いっぱい。
02/01/19 02:39ID:puXqubmn勿体ぶるなYO!
0156agege
02/01/19 02:53ID:ZUGdJ0ZN勿体ぶってなんかいないYO!
単にマニュアルを見るだけでガスYO!
0157名無しさん@お腹いっぱい。
02/01/19 02:56ID:puXqubmn英語のマニュアルは3行読むだけで疲れる。
あの変な日本語のマニュアルは5行が限界だ。
0158名無しさん@お腹いっぱい。
02/01/19 02:59ID:???よくいった!
もう神様にでもなったような日本代表気取りのあいつ、自分だけで本書いてるんじゃネエヨ。
読みにくいんだよお前の本。
0159agege
02/01/19 03:03ID:ZUGdJ0ZNDAKARA. ここに書いても結局マニュアルと同じようになるでしょ!
とわたしの脳がおっしゃいました。
0160名無しさん@お腹いっぱい。
02/01/19 03:05ID:puXqubmnじゃ、どこの行か教えてくれ。
0161agege
02/01/19 03:06ID:ZUGdJ0ZN0162名無しさん@お腹いっぱい。
02/01/19 03:10ID:???>とわたしの脳がおっしゃいました。
やばいよ(笑)
0163名無しさん@お腹いっぱい。
02/01/19 03:11ID:puXqubmn0164agege
02/01/19 03:14ID:ZUGdJ0ZN0165名無しさん@お腹いっぱい。
02/01/19 03:36ID:???0166名無しさん@お腹いっぱい。
02/02/04 16:59ID:???>postmasterを停止せずテーブル単位のREINDEXが可能です。
>作成者の怠慢でどこにも書かれていなかったこともあって
>7.2.0では出来なくなってしまいました。7.2.1では再び
>可能になります。
(´・ω・`) ショボーン
0167名無しさん@お腹いっぱい。
02/02/04 16:59ID:W5Vxrbq70168名無しさん@お腹いっぱい。
02/02/05 03:13ID:QtJ4ED0zそう思って待ち続けて早3ヶ月。PAMサポート早くホスィ...
0169名無しさん@お腹いっぱい。
02/02/05 08:58ID:y7uQjn4d7.2リリースって、日本時間だと今日だったような・・・。
0170名無しさん@お腹いっぱい。
02/02/05 23:02ID:QtJ4ED0zうお、ホントだ出てる!
pgsql-hackers見てきたけど問題なさそうだね。7.2リリースage
0171名無しさん@お腹いっぱい。
02/02/06 09:34ID:IeKBEXzZhttp://www.postgresql.jp/にもでてない....。
ftpにはもうあるのかな。
早くしてくれよう。
VACCUMに期待してるんだよう。
0172名無しさん@お腹いっぱい。
02/02/06 09:52ID:SjV/7aoMftpにはあるよ。
0173名無しさん@お腹いっぱい。
02/02/06 13:07ID:IeKBEXzZメーリングリストでも流れたね。
0174名無しさん@お腹いっぱい。
02/02/06 15:05ID:paN7WRtf出るのですが、何なのでしょう?
普通にコマンドラインから vaccumdb すると出ません。
cron での設定が悪いのでしょうか?
--------------------------
/usr/local/pgsql/bin/vacuumdb: basename: command not found
/usr/local/pgsql/bin/vacuumdb: sed: command not found
--------------------------
RH 7.2 + PostgreSQL 7.1.3
0175名無しさん@お腹いっぱい。
02/02/06 17:09ID:???ftp://ring.ocn.ad.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz
ftp://ring.asahi-net.or.jp/pub/misc/db/postgresql-jp/7.2/postgresql-7.2.tar.gz
現時点では、OCN にはまだミラーされてないみたいね。
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:???0276nobodyさん
02/04/24 10:40ID:zrCVc2f4MySQL-Max(InnoDB)はトランザクションに対応してますよ。
コンパイル時にそう設定されているだけなので、MySQLとMySQL-Maxは
お好みに合わせて使い分けることになると思います。
0277nobodyさん
02/04/24 10:42ID:zrCVc2f4ストアド・プロシージャーがなくても困ることはほとんど無いですよ。
それに頼る設計方針を見直すべきだよ。
0278nobodyさん
02/04/24 10:46ID:zrCVc2f4ベンチマークにエントリさえもされないPostgreSQLの立場って。
0279nobodyさん
02/04/24 12:48ID:PorNOKJ/PostgreSQL使いましょう。
まあ、MySQLの劣っているところも理解できない厨房であれば、
利用もやむを得ないけど。
>>276
トランザクションを利用すると、劇的に遅くなるよ。
一気に処理が複雑になるからね。だからMySQLの特徴が消える。
>>277
複雑な演算で速度出すときには必要です。
0280270
02/04/24 14:51ID:YiGTDcvnありがとうございます。お手数を感謝いたします。
入力した文字コードもEUCなんですが、PostgreSQL Users-ML に
ポストするしかないのですか。トホホ。
0281nobodyさん
02/04/24 15:18ID:???0282nobodyさん
02/04/24 15:44ID:PorNOKJ/商用利用は有料。詳細は調べてくれ。
0283nobodyさん
02/04/24 17:40ID:zrCVc2f4GPL?
0284nobodyさん
02/04/24 17:42ID:zrCVc2f4何か資料ありますか? 無いんでしょ?
また、トランザクション入れてもほとんど変わらないですよ。
また、複雑な演算処理の例を教えてください。
0285nobodyさん
02/04/24 17:44ID:zrCVc2f4WEB+DB PRESS の vol.4 の記事読んでみな。
0286nobodyさん
02/04/24 17:45ID:zrCVc2f4Delphi6 や Kylix や C++Builder6 のdbExpressでは、MySQLへの接続は
サポートされているけど、PostgreSQLへの接続はサポートされていない
んですよ。なんとかしてくれ。
0287nobodyさん
02/04/24 18:29ID:zrCVc2f4What is the most popular RDBMS? Is it MySQL?
約3,410件
What is the most popular RDBMS? Is it PostgreSQL?
約2,860件
MySQL beats PostSQL. :-)
0288nobodyさん
02/04/24 20:36ID:/PnzmLOGるって簡単に書けないのでしょうか ?
例えば、社員名簿のアプリケーションで、社員番号と社員データを元に更新/挿入
をやりたいんです。今は、更新してみて更新されたタプルが 0 だったら、改めて
挿入してるんですけど、1つの SQL で書けないのでしょうか ?
0289nobodyさん
02/04/24 20:43ID:???0290288
02/04/24 21:19ID:???でって...、いくわけないですよね。ほとんど数人でしか使わないローカ
ルデータベースだしねぇ。まあ、Ora8x でサポートしていないぐらいだか
ら、大体の DB じゃサポートしてなさそうですね。心おきなく、今までの
方法 (Update + Insert) で行きます。ありがとうございました。
0291nobodyさん
02/04/25 11:06ID:???0292nobodyさん
02/04/25 14:58ID:e1QGMeHXストアド・ファンクションをPLPGSQLで書けば代わりになります。
1.挿入/更新対象をSELECTする
2a.存在 →
2b.非存在 →
PostgreSQLオブジェクトは複雑になりますが、処理速度は向上します。
プログラム側で2回のクエリーが1回にで済むからです。
またプログラム側の処理が単純になりますね。
0293nobodyさん
02/04/29 00:48ID:oAtRhIR1関係ないけど、Ora系の業務だと、ストアドで10Kとかあるんだよね、よく。
デバッグ環境ももろくにないから泣きそう泣きそう…。
0294nobodyさん
02/05/03 21:41ID:/0wZrz3pPostgresのファンクションって、Oraなんかと違って、
コンパイル(?)して無いよね?
実行時のスピードって、向上してない気がするんだけどな、俺。
それとも単に、俺のクエリがへぼイだけ?
#久々に覗いたら、にぎわってるなココ。
0295名無しさん@XEmacs
02/05/03 22:11ID:???特に処理が重くなりそうな場合、Cで書くのもいいと思いますヨ。
0296nobodyさん
02/05/12 03:17ID:bKfXEgEZpostgresのテーブルの定義書を出力しても、
出力されたExcelファイルの中に、外部キーに関する情報が含まれていません。
これは、CSEのバグ(仕様?)なんでしょうか?
あるいは自分の設定かなにかが違うのでしょうか?
0297nobodyさん
02/05/12 04:17ID:RwG45MrUMySQLにはreplace intoというのがあるよ
0298nobodyさん
02/05/12 20:30ID:jWhbjITOcreate table moto (c2 int,c1 int);
create table shin as select c1,c2 from moto;
drop table moto;
alter table shin rename to moto;
0299nobodyさん
02/05/12 22:38ID:q4IRLeqO制約が消えませんか?
0300nobodyさん
02/05/13 14:00ID:bpGvMvHbINSERT INTO shin SELECT c1,c2 FROM moto
でいいんじゃないの。
ALTER TABLEで地道に制約付け直すでも良し。
SELECTで指定できるのに列の順序が気になる程度のもんなら、
別に大した設計してないだろ、と煽ってみるテスト(w
0301299 (!=249)
02/05/14 01:45ID:VEi3hWaX煽りに乗ってくれてありがとう。
0303nobodyさん
02/05/14 10:27ID:dvbYPP4RCREATE VIEW v_name AS
SELECT * FROM TABLE WHERE start_date<='TODAY'
開始日が本日もしくは本日以下の範囲を取得するというものです。
通常のselectでは問題なく取得できますが、
例えば日付が明日、明後日となるとその範囲のデータが表示されな
くなります。
で、viewをまた作成しなおすと表示されます。なんで??
TODAYはview作成時の日付で固定となってしまうのでしょうか?
お願いします。
0304名無しさん@XEmacs
02/05/17 09:54ID:???todayとかnowは、作成時点での日時に固定されます。
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/datatype-datetime.html
0305nobodyさん
02/05/17 11:03ID:fkHus637どうすればよいでしょう。
: 専用データベースクライアントを作る
最近じゃ JDBC とかデータベースを簡単に利用できる API があるので、いいと思う。
: Web 上で、ファイル送信のフォームを用いてCSVファイルを送信してもらい、しかも PHP の system 関数を起動させる
スクリプトを書く
なぜか、俺がやってみたところ、起動しなかった。「system('./thread.rb > /dev/null &'); 」
0306名無しさん@XEmacs
02/05/17 20:21ID:???0307nobodyさん
02/05/19 18:43ID:khVJsytmここを参考にソースをコンパイルしてみることにしました
PHPやpsqlからは、操作できたので、postgreSQLはきちんとインストールできてるものと思ってました。
しかし、いざコンパイルしてみると
dbconn.c:6:22: postgres.h: そのようなファイルやディレクトリはありません
と出されたので、postgreSQL7.1.3のソース元から、postgres.h をコピーしてきて
またコンパイルしてみると、更に何かが足りないとでます。
ムカツイタので、includeディレクトリィーごと、全部、パスが通ったところにインストールしたんですが、それでも、最終的に
/usr/local/pgsql/include/postgres.h:48:24: utils/elog.h: そのようなファイルやディレクトリはありません
/usr/local/pgsql/include/postgres.h:49:26: utils/palloc.h: そのようなファイルやディレクトリはありません
とゆうのがでます。何かインストール段階で間違ってるところがあるでしょうか?
インストール手順は、普通に、./configure make make install です
0308nobodyさん
02/05/19 18:49ID:a+gm9DOhJavaでできないんかな?
0309名無しさん@XEmacs
02/05/19 22:08ID:???> C言語からPostgreSQL(7.2.1)を操作したくて、
> postgreSQL7.1.3のソース元から、postgres.h をコピーしてきて
そこがダウトです。
ソースから手で取ってくるのではなく、インストールした /usr/local/pgsql/include に
あるはずです。
そのプログラムをコンパイルするときに、gcc に -I/usr/local/pgsql/include という
オプションを追加してください。
0310名無しさん@XEmacs
02/05/19 22:23ID:DDSBJIFh7.2のjdbcからは、ResultSetクラスにgetLastOID()というメソッドが
追加されています。これでお望みの機能を得られるかと思います。
0311308
02/05/19 23:39ID:a+gm9DOhどうもです。
org.postgresql.ResultSet のドキュメントに目を通さずに、
java.sql.ResultSet のドキュメントばっかり眺めてたから、
てっきり不可能なことかと思ってた。
0312nobodyさん
02/05/21 06:09ID:A7Xa03Vwどうもありがとうございます。
実際コンパイルするときは、gcc -o test1 test1.c -I$POSTGRES_HOME/include -L$POSTGRES_HOME/lib -lpq -lnsl -lcrypt こんな感じでコンパイルしています。
(環境設定で、POSTGRES_HOMEのパスは設定してあります)
それで、/usr/local/pgsql/include を見てみると以下の構成になっています。
c.h ecpgerrno.h ecpgtype.h lib libpq libpq-int.h pg_config.h postgres_ext.h pqexpbuffer.h sqlca.h
config.h ecpglib.h internal libpgeasy.h libpq-fe.h os.h pg_config_os.h postgres_fe.h sql3types.h
見てみると、コンパイルする時に必要な、postgres.hや、utils/ 以下のディレクトリなんかも見当たりません。
実際 http://www.atmarkit.co.jp/flinux/rensai/postgres03/postgres03.html ここのページの真中当たりを見てみると、
include "postgres.h"
include "libpq-fe.h" が必要と書いてあります。libpq-fe.hはあるのですが、postgres.hがないことから、>>307のような行為をしてみたのです。
0313名無しさん@XEmacs
02/05/21 21:26ID:???おいらは postgres.h インクルードしてないよ。
libpq-fe.h はインクルードしてるけど。
0314名無しさん@XEmacs
02/05/21 21:27ID:???0315312
02/05/22 12:56ID:8kY9gZMf解決しました。
インストール段階で、明示的に
gmake
gamke install
gmake install-all-headers
と打ち込んでやる必要があったみたいです
このように打つことで、全部のヘッダファイルがインストールされたみたいです。
いろいろアドバイスどうもでした。
0316nobodyさん
02/05/27 11:39ID:3Jjx1/hO試してみたんだけど、これって作成した関数を普通のSELECTで使えないものなの?
サンプルだとわざわざFETCHしてるし。やりたいのは
CREATE OR REPLACE FUNCTION gethoge(int4)
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR;
BEGIN
OPEN ret FOR SELECT * FROM hoge WHERE c1 > $1;
RETURN ret;
END;
' LANGUAGE plpgsql;
SELECT gethoge(4);
ってしたら複数行返してくれると嬉しいんだけど。SQL関数のSETOF使うと
妙にキャストしないと駄目だし。誰か詳しい人情報きぼんぬ。
0317nobodyさん
02/05/29 02:44ID:VbNebk4ICREATE OR REPLACE FUNCTION gethoge()
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR := ''r1'';
BEGIN
OPEN ret FOR SELECT * FROM hoge;
RETURN ret;
END;
' LANGUAGE plpgsql;
BEGIN;
SELECT gethoge();
FETCH ALL IN r1;
END;
で、本当は>>316に書いたように
SELECT gethoge();
だけで結果を取得したいんだが、詳しい人引き続ききぼんぬ。
あるいはJDBCから
BEGIN;
SELECT gethoge();
FETCH ALL IN r1;
END;
を実行した結果をResultSetに入れる方法でもOKです。
0318nobodyさん
02/05/29 04:06ID:???CREATE OR REPLACE FUNCTION gethoge()
RETURNS REFCURSOR AS '
DECLARE
ret REFCURSOR;
BEGIN
OPEN ret FOR SELECT * FROM hoge;
RETURN ret;
END;
' LANGUAGE plpgsql;
0319nobodyさん
02/05/29 04:07ID:???import java.sql.*;
public class test {
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
} catch (Exception ex) {}
try {
Connection conn =
DriverManager.getConnection(
"jdbc:postgresql://localhost/iruka",
"iruka",
""
);
Statement stmt = conn.createStatement();
ResultSet rs;
0320nobodyさん
02/05/29 04:08ID:???rs = stmt.executeQuery(sql);
rs.next();
String cursorName = rs.getString(1);
sql = "fetch all in \"" + cursorName + "\"; ";
rs = stmt.executeQuery(sql);
int c1;
String c2;
while(rs.next()) {
c1 = rs.getInt("c1");
c2 = rs.getString("c2");
System.out.println(c1 + " : " + c2);
}
sql = "end;";
stmt.execute(sql);
rs.close();
stmt.close();
conn.close();
}
catch(SQLException ex){
ex.printStackTrace();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
0321nobodyさん
02/05/31 15:27ID:VOysfiXSどうしたらいいんですか。Version は6.5.3です。
調べた範囲では消すとまずそうなのですが....
引き継いだシステムなので、バージョンアップとかも
ためらわれる...
0322nobodyさん
02/05/31 19:22ID:???あるいは pg_dumpall して $PGDATA 削除して initdb し直し。
0324nobodyさん
02/05/31 22:21ID:???データ消して作り直しってことですヨ!
バックアップ取って。
気をつけてくださいヨ。おながいします。
032518:01 2002/06/02
02/06/02 18:05ID:KL9d9Dk5pingもとおらん・・・
cvsupしようと思ったのにぃ〜
032618:14 2002/06/02
02/06/02 18:19ID:KL9d9Dk50327nobodyさん
02/06/04 15:01ID:???これって全く求人ないんだけど、皆さんは何の仕事してるの?
WEB系って単純なHTMLの単価が低い仕事ならよく見かけるけど、
そもそも金のあるクライアント・つまり金になる仕事で
フリーのRDB使うような仕事って成り立つものなの?
0329nobodyさん
02/06/04 21:26ID:???人間に金かけられるようになると思うのだが。
0330nobodyさん
02/06/14 23:50ID:???勉強しているんだが 何処を探してもphpの記述しか無いような気がするんですが
DBD::Pg は 一般的ではないんでしょうか?
ttp://member.nifty.ne.jp/hippo2000 は見たけど これくらいしか無いような気がする
あと具体的な質問
新しいtableを作るには
my($sql) = "CREATE TABLE suitedb (clumn_1 varchar(16))";
などとして
$dbh = DBI->connect("dbi:Pg……
とコネクトして
$que = $dbh->prepare("$sql");
$que->execute();
$que->finish();
とするように SQL文を丸々書くんですよね。
ttp://web.arena.ne.jp/suite/support/manual/cgi-db
0332nobodyさん
02/06/15 08:03ID:ovPoj3shマニュアル(man)に詳しく書いてある。
$dbh->prepare ではなくて $dbh->do("CREAT TABLE ...");を使うほうが、
よいと思われ。結果が返って来るわけでないし、DDLは自動でCOMMITされる。
あと $dbh->disconnect; を忘れるとエラーが出る(気がした)
とにかく試すことだ。
0333初期不良
02/06/15 20:17ID:Imc6xOenPostgreSQL ですけど、ML とかに書いてあった通り、
psql -E で \d とか \d table とかやって一応フィールド名と
フィールドタイプの取得はできるようになりました。
けど、プライマリキーがどのフィールドかってのがわからないんです。
pg_class とかトリガーとか調べれば... とか思っていろいろ調べて
みたんですが力尽きてしまいました。
プライマリキーがどのフィールドかわかる SQL って誰か書いた
ことありませんか?
0334nobodyさん
02/06/16 02:06ID:8EBDLVWp「aaa > bbb > ccc」みたいに現在地を表示させるには、
postgresだと、データをどうやって持たせるのが得策(定石?)なのでしょうか?
0335332
02/06/16 10:42ID:IP4vfeht反則技としては pg_dump を用いて、CREATE TABLE しているところを
確認すればよい。以下のような文が見つかるはずだ。
Constraint "initial_error_no_pkey" Primary Key ("initial_error_no")
>>334
自己結合(プ
0336nobodyさん
02/06/16 12:06ID:O6K9M+cM3階層のフィールドを用意するだけ
0338初期不良
02/06/16 17:41ID:???select indkey from pg_index
where indisprimary=true and indrelid=(
select oid from pg_class
where relname = 'tablename'
);
これで int2 の配列が帰ってきて何番目のフィールドが
プライマリキーかがわかる。あってる?
0339初期不良
02/06/16 17:44ID:bMMKPpy60340初期不良
02/06/17 09:59ID:???よく見たら \d tablename で出てくるインデックス(tablename_pkey 等)を
調べればわかることだったんだな...
\d tablename_pkey とすると出てくる。
unique の場合は tablename_fieldname_key のようなインデックスができるので
\d tablename_fieldname_key
とすれば unique なフィールドがわかる。
けど、テーブル名から調べる場合は前に書いたやり方の方が良さそうだな。
unique の場合はこうすればよし?
select indkey from pg_index
where indisunique=true and indisprimary=false and indrelid=(
select oid from pg_class
where relname = 'tablename'
);
0341質問君Φ
02/06/19 11:01ID:qIh4juAyinsert delete updateの際に欠番なしでシーケンシャルに増減するような奴
作ってみたんだが、どうしても無駄な番号アトリビュートを使って
orderbyしてupdateするという陳腐な方法しか思いつかん
もっとスマートに出来るはずだ。
よろしこ
0344質問君Φ
02/06/21 13:36ID:???そう言うこと
0346nobodyさん
02/06/25 03:48ID:XBDHwftNうとしています。とりあえず以下のようなものができあがりましたが、もっと簡
単で効率のよい方法ってありますか?
selectrow_arrayref()よりもこの場合に適したものがあるんじゃないかと思って
訊いてみました。
use DBI;
$string = "文字列";
$dbh = DBI -> connect ("dbi:Pg:dbname=testdb", "a");
if ($dbh -> selectrow_arrayref("select * from images where url = '$string'")) { print "ある\n"; }
else { print "ない\n"; }
$dbh -> disconnect;
0347nobodyさん
02/06/25 03:56ID:???もしそのあとに何かDBでするんだったらPL/pgSQLで書いたほうが
いいとは思うが、Perlからやるんだったらこうか?
my $dbh = DBI->connect(...);
my $sth = $dbh->prepare( 'SELECT 1 FROM images WHERE url = ?' );
$sth->execute( $string );
if( $sth->fetchrow_arrayref ) { # 多分$sth->rowsでも平気かな
print "ある\n";
} else {
print "ない\n";
}
$dbh->disconnect;
0348nobodyさん
02/06/26 01:44ID:WIsWhSE/なるほど。
ああ…まだまだ勉強不足…。
ありがとうございました。
0349nobodyさん
02/06/27 18:35ID:eHTNEubkphp4とpostgresqlが入ってたらまともに動くという
超簡単な環境検証用スクリプトみたいなものありませんかね?
本当に小さいものでかまわないです。
php4とpostgresqlに詳しい方であっという間に作れる方いませんか?
0350nobodyさん
02/06/27 21:37ID:fDXVhhFfまずは PHP を捨てるところからはじめよう。
0352nobodyさん
02/06/28 07:27ID:xBL4mzWk逝ってよし
0353CHANCE FOR EVERYONE
02/06/28 17:31ID:hU48lsFK費用対効果で他の媒体にこれより優れたものは無いでしょう。
長い目で見ても素晴らしいネットワークビジネスの紹介!!
私たちの参加しているネットワークビジネスは 在庫をもつ必要がなく、
製造メーカーの製品を直接広めるものです。
私たちのグループは、製造会社の製品をHPとメールという媒体も活用して、
低価格、高品質なよき製品を広めようという集まりです。
流通コストを消費者に還元して製品を広めるというこのシステムは、
何人かの識者が本などで発言しているのを読んでみると、
人間的かつ将来有効なシステムを創っていける可能性の大きいものだと感じます。
実際、有名な大会社AT&T、GM、マスターカードなども採用しだしています。
興味のある人には、ぜひ参加して一緒にやってみましょう。
以下のホームページでの説明も御覧ください。
http://ailove22.fc2web.com/lpd/index.html
0354nobodyさん
02/06/29 10:20ID:???>インターネットは使い方次第で個の力を何倍もの力に変えることが可能です。
>費用対効果で他の媒体にこれより優れたものは無いでしょう。
誰だって知ってる
>長い目で見ても素晴らしいネットワークビジネスの紹介!!
>私たちの参加しているネットワークビジネスは 在庫をもつ必要がなく、
>製造メーカーの製品を直接広めるものです。
>私たちのグループは、製造会社の製品をHPとメールという媒体も活用して、
>低価格、高品質なよき製品を広めようという集まりです。
禿げしく既出。
>流通コストを消費者に還元して製品を広めるというこのシステムは、
>何人かの識者が本などで発言しているのを読んでみると、
>人間的かつ将来有効なシステムを創っていける可能性の大きいものだと感じます。
>実際、有名な大会社AT&T、GM、マスターカードなども採用しだしています。
さらに既出のシステムだと自分で公言してるし…。
>興味のある人には、ぜひ参加して一緒にやってみましょう。
>以下のホームページでの説明も御覧ください。
ところで、2chにコピペすることは経営的に見て正解なのか?
0355libpq
02/07/01 00:16ID:???マニュアルに目を通していると、PQconnectdb()のパラメータにrequiresslを
指定できるとあったのですが、Windowsのクライアントでこのパラメータを実際に
使用している方はいらっしゃるでしょうか?
0356nobodyさん
02/07/01 10:01ID:b4xBEoiz参照してパスワード認証を行う方法を考えています。
以下のスクリプトだとうまくいくのですが…。
print "名前:\n";
$name = <STDIN>;
chomp $name;
$pwd = <STDIN>;
chomp $pwd;
$dbh = DBI -> connect ("dbi:Pg:dbname=testdb", "test_user");
$pre = $dbh -> prepare ("select password from test_list where name = '$name'");
$pre -> execute;
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
}
$dbh -> disconnect;
while文内のif文を、$dbh -> disconnect;文以下にもってくると
うまく処理されません。どうやらwhile文で使った$iは、$dbh -> disconnect;
した後は消去されてしまうようです。
$dbh -> disconnect;した後もスカラ変数や配列に代入された値を
そのまま保持する方法ってありますか?
なんか見当はずれの質問をしているっぽくて不安なんですけど…。
よろしくおねがいします。
0357初期不良
02/07/01 14:10ID:???なんだか perl な話だが、$i = $pre -> fetchrow_array
って事は array が返ってきているわけだよな?
スカラーに入れるって事はリファレンスになっちまってないかい?
password しか select してないからそれでも使えるのかもしれないけど
本当は参照の代入じゃなくて @i に入れてきちんと値のコピーを取るべきだろね。
そしたら disconnect したあともコピーした方は残ってるでしょ。
0358nobodyさん
02/07/01 15:01ID:???>while文内のif文を、$dbh -> disconnect;文以下にもってくると
の意味がよくわからんのだが、
$dbh -> disconnect;
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
}
→ $dbhをdisconnectした後にfetchrow_arrayを呼んでも無効
while ($i = $pre -> fetchrow_array) {
print "データベースに保管してあるパスワード\t$i\n";
}
if ((crypt ($pwd, $i)) eq $i) { print "OK\n"; } else { print "NG\n"; }
$dbh -> disconnect;
→whileを抜けた後は$iがundefになっているので比較しても意味なし
のいずれかでは?
0360nobodyさん
02/07/03 23:21ID:9oP/71OLWarning: PostgreSQL query failed: ERROR: Unable to identify an
operator '+' for types 'varchar' and 'int4' You will have to
retype this query using an explicit cast in ***.php on line ***
と出て先へ進めません。何か間違ってますでしょうか。
0362nobodyさん
02/07/04 00:45ID:???ええか識別できんって書いとるね。
このコードは多分、ばーきゃら型のtotalにいんとふぉー型と解釈された100を加算
しようとしたからエラーになっとる。型を合わさなあかんてことやね。
ん〜。ほら、後ろのほうに「はっきり型変換してくれ」て書いとるがな。
0363nobodyさん
02/07/07 02:35ID:xYfdkDpEpostgresのテーブルにそこにExcelデータをインポートしたいのですが、
ふつう、どうやってやるものなんでしょうか?
#アクセスのリンクテーブルでやればいいのかなとも思ったのですが、
postgresのテーブルにしか存在しないフィールド(serial型)があるもので、
ペーストしようとしても、怒られてしまいます。
0364nobodyさん
02/07/07 05:00ID:???0365nobodyさん
02/07/07 07:18ID:???http://www.postgresql.org/idocs/index.php?sql-copy.html
ポイントは一番下のユーザーコメントね。
0366nobodyさん
02/07/07 15:04ID:???「山田」の部分が「\123\332\222」のような文字列で表示されてしまいます。
(DBにはきちんと登録されている)
これはなぜなのでしょうか?
なお、Teraterm日本語版を使ってます。(送信、受信ともEUCに設定しています)
また、コピーした文字列は、明らかにEUCです。
0368nobodyさん
02/07/07 16:34ID:???0369366
02/07/07 16:36ID:mEMpxNTIで、setenv LANG=ja_JP.EUC
したのですが、症状は変わらずです。。。
#自分、はずしてますでしょか・・・
0370初期不良
02/07/08 00:52ID:???漏れも基本的には >>365 と同じなんだけど、
Excel ってセルを選択してコピー、テキストエディタで
ペーストするとタブ区切りのテキストになる。
これ CVS で出力より便利。
これを COPY コマンドで流し込んで、最後に
SELECT setval('table_id_seq', (SELECT max(id) FROM table));
なんてやってやるといいかと。んでリレーションの関係で
INSERT しないといけない場合は >>364 の方がいいかと。
0371初期不良
02/07/08 01:05ID:???ports/japanese/postgresql7
のを入れると大丈夫だったぞ。
普通のでもなんとかできるかも知れないけど
最後の手段として。
0372nobodyさん
02/07/08 15:29ID:Qyr7qWYN1.awk か perl を使って先頭に行番号を入れたファイルを作る。
awk '{print NR "\t" $0;}' < source.txt > destination.txt
2.psqlを使ってインポートする
copy "target table" from "source.txt"
3.シーケンスをインポートした数より増やす
select setval('sequence name',10000);
0373nobodyさん
02/07/08 16:42ID:???てゆーか、Excelってタブ区切りファイルに保存できるべ。ふつーに。
0375nobodyさん
02/07/09 13:48ID:???なんかある?
0376nobodyさん
02/07/09 22:48ID:???0377nobodyさん
02/07/17 22:44ID:pXjI4Thg質問させていただきます。
テーブルの継承を行った際のバックアップですが、
上位から継承したテーブルを\copyコマンドで指定して
バックアップをとったら、上位の継承元のテーブルと
いっしょにバックアップされるのでしょうか? それとも
下位のテーブルのみが対象となるのでしょうか?
どなたかご教授お願いします。
0378nobodyさん
02/07/18 00:51ID:???http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/2001Dec/msg00295.html
0379ごんた
02/07/18 13:46ID:q5AT3Pt2ただしリーズナブルなやつで。。
0380nobodyさん
02/07/18 16:34ID:zcxvlzIlありがとうございます。バックアップできる様ですので
検討してみます。あと継承機能を使った際、処理が増える分、
パフォーマンス的には落ちるのでしょうか?
その辺り触れたページが見つからなかったのでご存知の方
教えてください。
0381初期不良
02/07/18 20:06ID:5Jy0ruagドキュメントが少ない気がするけど
SoftwareDesign のバックナンバー取り寄せた方がいいのかな?
0382nobodyさん
02/07/19 14:31ID:???jbossかな?
>381
いまんとこ、DOMで事足りてるからねぇ。
0383nobodyさん
02/07/20 00:24ID:???psql -U postgres
ってやったらパスワードも求められずにpostgresユーザでログインできたけど
PostgreSQLってそういうモンなの?
0384Name_Not_Found
02/07/20 00:50ID:???pg_hba.conf で設定しる!
0385nobodyさん
02/07/20 08:48ID:???host all 127.0.0.1 255.255.255.255 password
ってやってもパスワード聞かれないよ〜
0386nobodyさん
02/07/20 17:53ID:???0387nobodyさん
02/07/20 20:34ID:/K3zxWeqDBD::PgやPHPで使えないんだっけ?
0388nobodyさん
02/07/21 18:28ID:???DBD::Pgは使ったことないから分からんけど、多分大丈夫。
0389Name_Not_Found
02/07/21 23:55ID:???man DBD::Pg すると
-i が必要だよーんって書いてあるよ。
0390初期不良
02/07/22 03:25ID:???postgresql 用 JDBC インターフェイスも -i が必要だね。
unix ドメインソケットに対応している PHP の方が珍しいのかも。
0391388
02/07/22 15:07ID:???0392nobodyさん
02/07/24 18:53ID:xJEMjSg0テーブル内に空のTEXT型のフィールドを10個くらいあらかじめ用意すると、
レコードが大量に増えてくると容量的にどの程度コストがかかりますか?
あとからalter tableで追加シル!という意見は要らないです。
0393nobodyさん
02/07/25 20:30ID:4Z9IBTld可変長テキストであるため、NULLが入っている限りたいした量ではないです。
1個のTEXT型で10バイトもとらないと思われます。
>あとからalter tableで追加シル!という意見は要らないです。
正規化しましょう。
0394nobodyさん
02/07/26 03:33ID:???0395Name_Not_Found
02/07/26 04:30ID:???まじですか。
んじゃ JDBC だけか。
JDBC でも UNIX Socket で動くようにならんかね。
0396nobodyさん
02/07/26 13:12ID:it2WH5XfSOFTBANK社の「はじめてのPostgreSQLプログラミング」
を読んで練習しているのですが、
select to_char(timestamp, 'now','HH12:MI:SS');
が実行できません。
ERROR: Attribute 'timestamp' not found
というエラーがでます。
今のところ他の簡単なSQL文は実行できています。
何が間違っているのでしょうか?
どうしたら実行できるでしょう?
よろしくお願いします。
環境:WindowXP PostgreSQL7.2でCSEを使用してます。
0397nobodyさん
02/07/26 13:36ID:???> select to_char(timestamp, 'now','HH12:MI:SS');
select to_char(timestamp 'now','HH12:MI:SS');
こうじゃない?
0398396
02/07/26 13:37ID:???カンマが余計でした。スンマソン
select to_char(timestamp 'now','HH12:MI:SS');
でできました。逝きます・・・
0399396
02/07/26 13:38ID:???0400396
02/07/26 15:45ID:it2WH5Xf例えば
SELECT DISTINCT ON(dept_id) dept_id AS 部門ID
FROM employees;
とするのと、
SELECT dept_id AS 部門ID
FROM employees
GROUP BY 部門ID;
とするのは、どっちが早いとか、どっちを使うべきかというのが
知りたいのですが、どうなんでしょうか?
0402nobodyさん
02/07/27 23:08ID:V7PX6eYjlibpqを使って開発しています(C言語)。
DB接続用関数「PQconnectdb()」の使い方がワカランです。
引数が可変長なのは理解できるんだけど、その指定方法がいまいち。
マニュアル通り、「keyword = value」ってやってもできん。
どなたか、使用例ってのを見せておくんなまし。
追加でもう一つ。PGstatusの返り値の違いがワカランです。
特にCONNECTION_OKとCONNECTION_AUTH_OKかな?
あと気になるのは(マニュアルより引用)
「CONNECTION_MADE 接続はOKです。送信されるのを待っています」
いったい何が送信されるのを待ってるんだろう。
どなたか謎を解明してくんさい。
0403親切な人
02/07/27 23:23ID:???ヤフーオークションで、凄い人気商品、発見!!!
「 RX-2001 」がパワーアップした、
「 RX-2000V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
0404名無しさん@Emacs
02/07/28 03:17ID:???PQconnectdb()でなければならない?
問題なければ、PQsetdb()使った方が簡単だと思いますが。
PQstatus()の返り値は、通常は not CONNECTION_BAD を
調べます。CONNECTION_MADE や AUTH_OK は libpq が
内部状態を記憶するのに使うのであって、
通常アプリケーションの方からは使いません。
0405nobodyさん
02/07/29 10:45ID:???例えば社員データベースに格納したいデータとして
社員番号、社員名、住所、電話番号
があって、その中で社員番号と社員名は頻繁に問合せされるけど、
住所、電話番号が問合せされることはほとんどない、といった状況があった場合、
次のどれが問合せの効率としてはいいんでしょうか?
1.全て一つのテーブルに持ち、必要な情報だけを問い合わせる
2.全て一つのテーブルに持ち、よく使われる問合せをビューとして定義する
3.よく使われるデータとそうでないデータを社員基本情報と社員付加情報のような
別テーブルにわけリレーションをはる
4.それ以外
0406初期不良
02/07/29 12:49ID:???実験した方が...
見た感じ postgresql がやることとしては
1, 2 は変わらない感じだから、3で速くなって
その速度が必要だと思ったならテーブル分けて
結合する view を作って view に insert delete update
できるようにするのがいいかと。
0407nobodyさん
02/07/29 16:33ID:???あ、もちろん実験はするつもりでした。
ただ、メリット・デメリットがわからない状態で闇雲に実験しても
「実はこういう場合もある」みたいなケースがあるかなと思いまして、
先達の皆様のご意見をお伺いしたかったと、まぁそういうことです。
今のところ
1.テーブル設計が楽。フィールドが増えると検索に時間がかかる。
2.SQLの組み立てが1よりも楽。検索速度は1.よりも若干遅くなるかも。ビュー定義を別に行う必要がある。
3.検索速度が2.よりも速い。ビュー定義が複雑になる。
ぐらいかと思ってるんですけど、本当でしょうか?
0408nobodyさん
02/07/29 16:55ID:???3.の場合は社員番号、社員名テーブルと社員番号、住所、電話番号テーブルの
整合性に気を使う必要がある。
というのもあるかも。
つまり、工数が増える->ミスする可能性が増える、ということなので、
俺なら、その部分がボトルネックになってて、かつテーブルを分ける事で
大きく性能が改善される事がベンチマーク等で確認されないかぎりは、
一つのままにするかな。
0409pg初心者
02/07/29 17:26ID:???SERIAL型で最大値(2147483648)を超えた場合,
次の値はどうなるんでしょうか?
0410nobodyさん
02/07/29 18:06ID:yb513x2/キャラクター(笑)とかがタダで持てたり、着替えさしたり・・・・
でも今だけらしいですよ入会無料なのって
詳しくは下記UELをクリックして、確かめて!!
http://www.e-mansion.co.jp/co/ac.html
0412nobodyさん
02/07/29 21:30ID:???です。でもそういう意味ではわざわざテーブルを分けること自体、
正規化の逆を行ってたりします?
確かに気を使う割には件数がそんなに莫大というわけではないので
#実際には社員テーブルではないのですが。。。
とりあえず1.でやってみて、問題になりそうなら考える、という形にします。
どもありがとうございました。
0413nobodyさん
02/07/29 22:17ID:+EFE+b01遅いレスだけど、速度を出すときは結合(ソート+マージで高コスト)を
減らす。
列の数が気になるようだが、サーバーとクライアント間の転送量が最初に
問題になるので、問い合わせ時に絞れば問題ない。
さらに例示されたテーブルを無理に分割すると、第五正規化・対称制約条
件に従わない、に違反するので非正規化になる。
0414nobodyさん
02/07/29 22:54ID:???ですよね。大したデータでもないのにわざわざ正規化じゃなくするのは
ちょっとヤな感じがしてきてたところです。これで安心して1.で逝けます。
0415nobodyさん
02/07/30 00:36ID:HDFyLWHUPostgreSQLVer7.1.3を使っているんですけど,
ロックタイムアウトの時間とかは指定できないんでしょうか?
もし,タイムアウト時間が指定できなければ,どのテーブル(又はレコード)に
ロックがかけられているか調べる術などあるのでしょうか?
0416nobodyさん
02/07/30 01:09ID:???トランザクション使えば明示的なロックが必要な部分ってかなり少なくなると
思うんだけど、本当にロックが必要?
わかってて聞いてるならスマソ。
やるとすれば、PQsendQuery して自前でタイムアウト処理して、間に合わない
ようなら PQrequestCancel すればいいのかな。やったことないから正しいか
どうかわからないけど。
0417nobodyさん
02/07/30 01:24ID:HDFyLWHUJavaからDBを触っているんですけど、処理上どうしてもあるレコードが
ロックされているか知る必要があるのです。
(そもそもシステムの設計に欠陥があるのですけど、もう後の祭り…)
「PQsendQuery」調べてみました。
検証してみないとなんとも言えませんが、使えそうな気がするので実験してみます。
アドバイスありがとうございました。
0418nobodyさん
02/07/30 21:46ID:w4X2IPfeなどのテーブルのデータに対して使用する関数はようやく使えるようになりましたが
テーブルそれ自体の項目名を変更したり削除したりするのは
どうやったらいいのでしょうか?
今までは間違えたらDrop Table
して一からCreate Tableしていたのですが、
さすがにそれでは追いつかなくなりました。
SQL一覧をみてもそれらしいのが見つからないのです・・・
0420418
02/07/30 23:37ID:w4X2IPfe見事に出ておりました・・・
アルファベット順だったのでこんな上にあったとは・・・
0421418
02/07/31 00:28ID:boduSA+6ALTER TABLE mytable ALTER mycolumn integer;
こんなかんじでtextになっているmycolumnをintegerに替えようとしているのですが・
ちなみに
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/sql-altertable.html
これを参考にしています
0422nobodyさん
02/07/31 10:32ID:aLb8xrtM頻発するのはどうかと思うが。
新しいテーブルを別に作って select 〜 into 〜 するときに
text を integer に変換して入れる、ってのはどう?
で、古いのを drop して新しいのを rename。
0423nobodyさん
02/07/31 10:54ID:v8yqPDdo新しいテーブルを作って、サブクエリー付きでinsert intoすればよい。
0424nobodyさん
02/07/31 11:28ID:vDTHZH0eLIMITやOFFSETが使えそうですが、20件/1200件
のように全件中の20件のみの表示の場合、全件数を
検索して件数を取得してから、またLIMIT 20 OFFSET 0
とかでSELECTし直して表示させる方法はなんだか
無駄のような気がします。
何か他によい方法はないでしょうか。
0425424
02/07/31 11:32ID:vDTHZH0e最終的には例えば、
1200件中の21〜40件を表示しています。
みたいな表示をしたいのですが、
@全件数を取得するクエリと、
A21件目〜40件目を取得するクエリと
2回クエリを実行させないといけないので、
他に何かよい方法がありましたらお教えください。
0426421
02/07/31 12:07ID:boduSA+6うううそうなのですか・・・
たくさんある項目の中で一箇所だけintegerにすべきところをtextにしてしまったのですよね。
まだデータをいれてないのでまあテーブルごと消して直してしまえば
それまでなのですが・・
0429421
02/07/31 15:27ID:boduSA+6pgdb=> ALTER TABLE mytable ADD myautonum serial;
このように実行すると
NOTICE: ALTER TABLE will create implicit sequence 'company_autonum_seq' for SERIAL column 'company.auto
num'
NOTICE: ALTER TABLE / ADD UNIQUE will create implicit index 'company_autonum_key' for table 'company'
ERROR: Adding columns with defaults is not implemented.
Add the column, then use ALTER TABLE SET DEFAULT.
こんな感じで怒られてしまいます。
tableに項目を足したり削除したりというのがどうもできません。
名前の変更だけはできるのですが・・・
>422
レスありがとうございます。
しかしどうも私の力じゃ理解しきれないもようです・・。
ちょっといろいろネットを当たっては見ているのですが、
postgresは意外と情報が少ないというか
ハイレベルな話が多くて、本当の初心者向けの話が少ないですね。
0430nobodyさん
02/07/31 20:44ID:3uNj3n4cERROR: Adding columns with defaults is not implemented.
を日本語に訳せば原因がわかるよ。
あと、Postgres を使いこなしたいなら、シーラカンス本は必須。
とくに DB 使った経験が少ないならなおさら。いまだと改訂第3版が出ている。
0431f
02/07/31 21:04ID:ZYUYyFHP-------風俗の総合商社・MTTどこでも-------
〇デリバリーヘルス〇デートクラブ〇女性専用ホストクラブ〇
〇ハードSM奴隷クラブ〇レズビアン倶楽部〇ホモ・オカマ倶楽部
〇変態痴女と遊ぶ会〇痴漢・覗き趣味の会〇変態同好会・各種!
●楽しく遊べます! 090-8002-8356番
-----------美男・美女会員など多数在籍中-----------
http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
-----レズビアン・スタッフ●ホモスタッフ●女性専用ホストスタッフ同募-----
http://www.mttdocomo.jp/
------------------------------------------------
0432396=400
02/08/01 12:22ID:???ご解答ありがとうございます。ご返事遅くなって申し訳ありません。
EXPLAIN使ってみました。
このチェックの仕方知らなかったので大変勉強になりました。
速度的には特に問題なさそうですね。
巨大なテーブルがあったらまたチェックしてみます。
ありがとうございます。
0433nobodyさん
02/08/02 14:00ID:IWsgOaFuoracleのXSQL見たいなことが出来ると聞いたので試してみてる最中なのですが。
ttp://four.sssg.org/documents/
を参考にTomcat/postgres/cocoonは全て起動するようになったのですが、
そこから先がよく分からんです。
ttp://www.atmarkit.co.jp/fxml/rensai/cocoon01/cocoon01.html
も見てみましたが肝心の連動の話はまだ先のようで…
XSPとか使うんでしょうか?
環境を一応…
RedHat7.2J
postgreSQL 7.1.3
tomcat 3.2.3
apache 1.3.20
cocoon 1.7.4
ここではなく他に適当なスレがあるのであれば誘導お願いします…
関連っぽいスレがここしか見当たらなかったので…
0434osage
02/08/03 01:54ID:???SELECT
A.*,
B.ALL_COUNT
FROM
TABLE_NAME A,
(SELECT COUNT(COL1) AS ALL_COUNT FROM TABLE_NAME) B
LIMIT 10
OFFSET 5
みたいな感じじゃだめ?
条件にもよるけど、2回 SELECT 発行した方が早いときと、
遅いときとありますたので・・・
>>427
「ない」って言うのは嘘だろ
0435nobodyさん
02/08/03 06:30ID:ZbZ4OQz5./configure したところ、
You must use GNU make to build PostgreSQL
stop in ***********
と出ます。原因は、gmake が無い事だと思い、
とりあえず、ln make gmake
としたのですが、無駄でした、GNUMakefile はどこで手に入れれば良いのでしょうか。
それと、問題そのものの解決策になるでしょうか?
0436nobodyさん
02/08/03 06:56ID:ZbZ4OQz5何とか解決できそうな気がします。
失礼しました。
0437nobodyさん
02/08/03 10:21ID:hyrYRCqD取り敢えず、Cocoonは2.0.3にしておけ。
で、ESQLというのがあるので、それを使えば望みは叶うぞ。
0438nobodyさん
02/08/03 16:43ID:kR3x2v5Aかな〜り遅レスですが、寸間祖(ATOK)
> PQconnectdb()でなければならない?
> 問題なければ、PQsetdb()使った方が簡単だと思いますが。
簡単か否かは別として使ってみたいんす
パラメータをどうやって区切るのかわからんのです
(スペースとか、カンマとかやってみたんすけど)
ちなみに同じパラメータリストでPQsetdb()ではできました
> PQstatus()の返り値は、通常は not CONNECTION_BAD を
> 調べます。CONNECTION_MADE や AUTH_OK は libpq が
> 内部状態を記憶するのに使うのであって、
> 通常アプリケーションの方からは使いません。
ありがとうございます
基本的にはフロントエンドでは(CONNECTION_OKと)
CONNECTION_BADを見ればいいってことですね。
関係ないですが、今日はPQclear()し過ぎてて
セグメンテーションフォールト起こしてました。
0439nobodyさん
02/08/04 18:49ID:r6DcgMc8にも検索できるようにするのですが、年(YYYY)と月(MM)と日(DD)と
別々の列にするのと、YYYYMMDDのひとつ列を正規表現で探すのとどち
らが早いでしょうか
どちらもインデックスは作りません
0440nobodyさん
02/08/04 20:28ID:???0441433
02/08/04 23:57ID:3MVeA/Fz亀レススマソ。
2.0.3ですかー。とりあえず上記のアドレスを参考にしたのでわざと最新版にしていませんでした。
あと日本語問題も古い方が良いと話を聞いたので…
ESQLですね。調べてみます。有難うございました。
ついでに、本無いか探してみたのですがモノの見事に
Apache+Tomcat+Coccon+PostgreSQLの本を発見しました…
一から勉強してみますです。
0442nobodyさん
02/08/05 01:00ID:YPHySkjn日付型
0444nobodyさん
02/08/05 01:19ID:???0445nobodyさん
02/08/05 01:26ID:???別々の列にする意味あるのか?
CHAR型にする意味があるのか?
0446nobodyさん
02/08/05 01:32ID:???0447nobodyさん
02/08/05 01:43ID:???ん・・・・それは、Oracleだっけか?
0449439
02/08/05 05:10ID:yM7Bnwzp年と月と日のそれぞれの入力欄があり、
月の欄だけに8と入力すれば、年や日に関係ない8月だけの
データが取り出せます。
また日の欄だけに15と入力すれば、年や月に関係ない15日
だけのデータが取り出せる。
そういった串刺し的にデータが取り出したいのですが、
日付型にして例えば15日だけのデータ
を取り出すとなると、年や月をプログラム等どこかで
補完してやる必要は出てこないでしょうか。
それは省きたいので年月日を別々の列にして検索するか
YYYYMMDDの文字列を正規表現で検索するかを考えています。
0450nobodyさん
02/08/05 06:03ID:???db=> create table test (time_field timestamp);
db=> insert into test values ('2001/08/31');
db=> insert into test values ('2002/05/31');
db=> insert into test values ('2002/08/05');
db=> select * from test;
time_field
------------------------
2001-08-31 00:00:00+09
2002-05-31 00:00:00+09
2002-08-05 00:00:00+09
(3 rows)
db=> select * from test where extract(month from time_field) = 8;
time_field
------------------------
2001-08-31 00:00:00+09
2002-08-05 00:00:00+09
(2 rows)
db=> select * from test where extract(day from time_field) = 31;
time_field
------------------------
2001-08-31 00:00:00+09
2002-05-31 00:00:00+09
(2 rows)
0451nobodyさん
02/08/05 06:16ID:iq1uYGQ8ありがとうございます。
extractなんてあったんですね。目からウロコでした(;_;)
マニュアルは何回か探したんですが気づきませんでした。
0452nobodyさん
02/08/05 14:38ID:LsERs9OySQL関数で日付型から一部分を抜き出せるよ。
0453nobodyさん
02/08/07 00:18ID:???0454nobodyさん
02/08/09 11:01ID:XpLu47Ro名前がついていたデータなのに16558とか16559といった数値に
データが変換されてしまっているようなのですが、変換されてしまった
データを元の名前に戻す方法とかってあるでしょうか?
0455nobodyさん
02/08/09 15:32ID:FVfbuWof型式をTIME型にしてDB作って
CAST('01:02:03.45' AS TIME)
をINSERTしても、01:02:03までしか格納されてないみたいなのです。
TIME型は小数点2まで記録できるとあるようですが
DB作る時点でなにかしら設定しておかないといけないのでしょうか?
0457nobodyさん
02/08/09 23:05ID:Mh8PP7zCやりたい事:面会記録テーブル面会者1、面会者2表示を人物テーブルから名前を引っ張ってくる。
一つでしたら何ら問題ないのですが、二つ引っ張ってくる時のSELECT文のFROMまでどのように記述してよいか
解かりません。↓が例です。
テーブル1:人物テーブル
ID 名前 姓
1 田中康則 男
2 田中真紀 女
3 小泉純二郎 男
テーブル2:面会記録テーブル
ID 日時 面会者1 面会者2
1 8-8-2002 1 2
2 8-9-2002 2 3
SELECT後の希望表示結果:
日時 面会者1 面会者2
8-8-2002 田中康則 田中真紀
8-9-2002 田中真紀 小泉純二郎
簡単そうで、何かうまくいきません。何方かご教授お願いします。
0458nobodyさん
02/08/10 00:30ID:???0459nobodyさん
02/08/10 00:43ID:K0BBB4AYテーブル設計が腐っています。
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>テーブル設計が腐っています。
(´・ω・`)ショボーン 勉強してきます。
えっと上ので試したけどいまいち訳わからずです。
一度の面会で複数の人に会ったという設定なのですが、
このSQLでよいのですか?
DQNな質問でスマソ。
0461nobodyさん
02/08/14 04:37ID:MFUQQkABアプリケーション側で表示は工夫する必要はあります。
同じ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 がイヤなら適当に変えてね。
0463461
02/08/14 16:11ID:MFUQQkABいける。頭まわっていなかったらしい・・・
0464nobodyさん
02/08/14 21:30ID:/c+Z8KBo解決出来ました!有難う御座います。
>>461
どうもいろいろ意見有難うございました。unionの用法勉強してきます!
0465コギャルとHな出会い
02/08/14 22:08ID:udQrDzAC朝までから騒ぎ!!
小中高生
コギャル〜熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
小中高生大歓迎です
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。
激安携帯情報あります。
0466466
02/08/20 01:22ID:VsvDpbeqデータ-ベースを使用するデータ-ベース使用者の数だけ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なあ、この女どう思う?
0468httpd
02/08/20 18:26ID:cHWvWGpngrantしないとpermissionエラーになるんですけど(;_;)
いちいちgrantしたくないので助けてくださいm(_ _)m
要するにhogedbにhttpdでアクセスしたいだけなのですが・・・どこが違うの??
//ユーザー作成
createuser -d httpd
//変身!!
su httpd
//DB作成
createdb hogedb -U httpd
//インポート
psql -e hogedb < db.out
0470nobodyさん
02/08/21 11:57ID:2UYHGwouデータの移植は正常だったですか?
おいらんトコは、7.1.xのpg_dumpバックアップファイルが、一部のテーブルだ
けエラーでダメだった。
どーなんてんだ?いったい‥‥‥
0471nobodyさん
02/08/21 13:04ID:IYK8rA+AEUC 外の特殊な文字とか入ってない?
0472470
02/08/21 14:12ID:2UYHGwouないと思うんですけどねぇ‥‥
データの大元は、S-JISのテキストなんですけど、変換かけてEUC
にしてから入力にかけてますんで‥‥‥
0473httpd
02/08/21 16:30ID:ie5NkI8ZVersion覚えてないけどシーケンス発行がトラブった。
つーか、setvalでシーケンスの数字変更する時に。
最後の't'を外したら動いたけど……。
0474httpd
02/08/21 16:33ID:???やっぱり、これではhttpdの所有になっとらんのですね(T_T)なぜだ……。
//ユーザー作成
createuser -d httpd
//変身!!
su httpd
//DB作成
createdb hogedb -U httpd
0475nobodyさん
02/08/22 17:05ID:w2//Sq4yAというテーブルからBというテーブルへ項目をコピーしたいのですが、その際に
日付/時刻型の「2002/08/22 午前 12:12:12」というデータを「yyyymmddhhmmss」という型に
デコードしてコピーしたいのですが、どういった方法が挙げられるでしょうか?
0476nobodyさん
02/08/22 21:19ID:sZeyw1CT何のために?
DB に入れておくんだったら、日付型の方が便利。
時刻をフォーマットしたいだけなら to_char() を使うけど。
0477nobodyさん
02/08/22 23:17ID:WGWM2PPcユーザquotaのしばり受けるの?
Postgreの使えるレンタサーバ使おうと思ってるんだけど、HP容量にDB容量が含まれるのか知りたくて
0478_
02/08/23 14:03ID:???xreaですか?
0480nobodyさん
02/08/23 20:48ID:5qP9jqJhxreaのHPに、「データベースサイズ:目安は5メガバイトまで。」って書いてあるぞ。
HP容量と違うし
0481nobodyさん
02/08/23 21:39ID:5qP9jqJh0483nobodyさん
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
加茂。
0582nobodyさん
02/09/27 02:43ID:???この文でわかってしまった漏れもアレなんですけど、
fooにaaaとaabとaacを含むようなbarを求めろってことっしょ?
>581
のは、ただ
barにaaaか、aabか、aacを含み、かつ
fooにmonaな奴を出すってやつで違うんでは。
例えば、
bar|foo
---|---
aaa sii
aab sii
aac sii
ってのがあればsiiも出したいって事だろ(違うかな?
-----------------------
select tmp.bar from
(
SELECT
bar,
count(*) as cnt
FROM
baka
where
foo in ('aaa','aab','aac')
group by bar
) as tmp
where tmp.cnt=3
0583582
02/09/27 02:44ID:???2分で考えた奴で、あまり綺麗でないけど↑でどうでしょう。
cntにはinで指定した要素数入れてくれ。
select * from baka;
foo | bar
-----+------
aaa | mona
aab | mona
aac | mona
aaa | giko
aab | giko
abc | mora
aaa | sii
aab | sii
aac | sii
結果
bar
------
mona
sii
0584582
02/09/27 02:58ID:???Subquery Scan tmp (cost=27.79..27.90 rows=1 width=32)
-> Aggregate (cost=27.79..27.90 rows=1 width=32)
-> Group (cost=27.79..27.83 rows=15 width=32)
-> Sort (cost=27.79..27.79 rows=15 width=32)
-> Seq Scan on baka (cost=0.00..27.50 rows=15 width=32)
(;´Д`)y─┛~~
業務にこれ使わないでね(笑)
そもそもこういう問い合わせしなきゃならないってことはテーブル設計が拙い様な。
もっといいやり方あるかなぁ?
0585582
02/09/27 03:06ID:???嘘かいちった。
foo | bar
-----+------
aaa | mona
aab | mona
aac | mona
aaa | giko
aab | giko
abc | mora
aaa | sii
aab | sii
aac | sii
aad | mona
aaa | mona
0586582
02/09/27 03:14ID:???(
SELECT
bk.bar,
count(*) as cnt
FROM
(select distinct * from baka) bk
where
bk.foo in ('aaa','aab','aac')
group by bk.bar
) as tmp
where tmp.cnt=3;
一人芝居さびしぃ(;´ω`)
0587hmk
02/09/27 03:27ID:???苦戦してますね。
儂は現役を引退して、手許にDBがないので検証できまそん。
でもちょっと考えてみましょうか。。。
0588hmk
02/09/27 03:45ID:???EXISTS(SELECT * FROM baka WHERE foo='aaa' AND bar=bk.bar) AND
EXISTS(SELECT * FROM baka WHERE foo='aab' AND bar=bk.bar) AND
EXISTS(SELECT * FROM baka WHERE foo='aac' AND bar=bk.bar)
こんなこと出来たっけ?
0589582
02/09/27 03:56ID:???通ったよ。
別にこのぐらいで解決するのは苦戦って言わないんだけど^^;
可読性はいいね。コストは俺のがいいかも。
まぁ、explainで判断してもアレですが。
Unique (cost=75024.35..75024.67 rows=12 width=32)
0590hmk
02/09/27 04:06ID:???>別にこのぐらいで解決するのは苦戦って言わないんだけど
確かに、、、失礼しますた。
こんなんで>>576君には分かって頂けましたでせうか。。。
0591576
02/09/27 07:03ID:???適当な説明してしてなかったのに、丁寧に答えていただきありがとうございます!
今から家を出ないと逝けないので、帰ってきたら試してみたいと思います。
初期のシーラカンス本片手に個人でシコシコやってるDB初心者ですので
業務に使うとかそういうのはないです。
0593nobodyさん
02/09/27 12:36ID:???1. point型のxまたはy座標だけを SELECT というのはできるのでしょうか?
2. point型のデータをy座標順に SELECT というのはできるのでしょうか?
(1.ができればできそうですが。。。)
0594hmk
02/09/27 16:49ID:???演算子の ?- や ?| を使えばなんとかならないかなぁ。。。
0595593
02/09/27 18:55ID:???最初にテーブルを作るときに point でなく、int にしておけばよかったのですね。
0597nobodyさん
02/09/27 19:47ID:OLJtUF/o取り出したいのですが、簡単そうで全然できませんでした(;´Д`)
凄いSQLの初歩っぽい質問ですが、お知恵を拝借ください…
foo | bar
---------
1 | 1
1 | 2
2 | 1
2 | 2
2 | 3
3 | 1
というようなテーブルから、
foo | bar
---------
1 | 2
2 | 3
3 | 1
のように、それぞれのbarが最大値になっているfooを取得するselect文なのですが…
0598nobodyさん
02/09/27 20:44ID:???「それぞれのbarが最大値になっているfoo」というのが
いまいち意味がわからんのだが、例示されてる結果を出すだけなら
select foo, max(bar) from hoge group by foo;
で、いける。
0600597
02/09/27 21:06ID:???すみません、初心者ついでにもう一点お助けください。
先ほどのテーブルにカラムを追加してみたのですが、同じような foo と bar の
関係で baz を取り出そうとしたら全て取得されてしまいました。
SQL > select foo,max(bar),baz from hoge group by foo,baz
では安直過ぎたでしょうか…
foo | bar | baz
------------
1 | 1 | aaa
1 | 2 | bbb
2 | 1 | ccc
2 | 2 | ddd
2 | 3 | eee
3 | 1 | fff
0601nobodyさん
02/09/27 21:58ID:???0602hmk
02/09/27 22:49ID:???おまいはできるのかぇ?意外とむずくねぇか?
>>600
ちょっと考えてみたんだけど、下のを試してみよ。
儂DBもってなくて試せないから、結果の保証はできんが。
間違ってたら藁って下さい。
SELECT DISTINCT foo,bar,baz FROM hoge h1 WHERE NOT EXISTS(SELECT * FROM hoge WHERE foo=h1.foo AND bar>h1.bar);
0603597
02/09/28 00:30ID:???悪くはないと思うけど、
3 | 1 | ggg
があったらどうなりますかね・・・(藁
SELECT
fb.foo,
bb.bar,
bb.baa
FROM
(
SELECT
foo,
max(bar) as bar
FROM
"2ch"
GROUP BY
foo
) as fb
left join
(
SELECT
*
FROM
"2ch"
) as bb
on fb.bar = bb.bar and fb.foo = bb.foo
0604597
02/09/28 00:31ID:???あー、PGバイト&飲み帰りで眠い・・・金曜はねぇぇぇ(;´ω`)
>598にちょっと手を加えた手抜きverっす。
スキーマちょっとちゃうけど。
たぶん、Merge Joinじゃなく、Nested Loop Join使った方が、
データ量小さい場合は早いかも。
-----------------------
foobarbaa
11aaa
12bbb
21ccc
22ddd
23eee
31fff
23ggg
------------------------
[結果リレーション]
foobarbaa
12bbb
23eee
23ggg
31fff
0605597
02/09/28 01:51ID:???ありがとうございます。
ちゃんと期待通りの結果を取得してくれました!
理解できるまで、今まででかかってしまったのですが…
>>603-604
598さんなのでしょうか。度々ありがとうございます。
3 | 1 | ggg は、私も思いついていなかったです。ますます複雑に(;´Д`)
left joinを使ったSQL文は初めて見ました。勉強になります。
うう、思った以上に難しいです。精進します…。
0606nobodyさん
02/09/28 02:58ID:???interval型を使って年-日-時でデータを管理しているのですが、
時から日への繰り上がりは24時間でやってくれるのですが、
日から念への繰り上がりは、365日で1年への繰り上がりを期待したら、
どうやら360日で繰り上がってます。
カウントの値ですので、もちろんうるう年などは考慮に入れなくてかまいません。
interval型を使ったときの繰り上がり日数の指定ってできないのでしょうか?
0607582 ◆6C3D/kPs
02/09/28 03:04ID:uO9XS1Su変な名前入れちまったな...(汗
朝生見つつ、酔いが冷めました。
0608nobodyさん
02/09/28 03:19ID:9vPkzBLd6.5.3(でぶあんイモのサーバなのだ(T_T))のPostgreSQLで
SELECT COUNT(*) FROM (SELECT DISTINCT TEL FROM ORDER WHERE TEL = '03%') AS TEMP_TABLE
ってやったら怒られた出巣。
0609nobodyさん
02/09/28 03:22ID:???0610hmk
02/09/28 03:40ID:???>>608
こんなことできなかったっけ?
SELECT COUNT(DISTINCT tel) FROM order WHERE tel LIKE '03%';
0612608
02/09/28 04:28ID:9vPkzBLd失礼、そのとおり(^^;
>>610
いや、アレはあくまで例題なので(^^; メインは「副問い合わせが使えるか」側なんですよ。
……でもこっちも×でした(^^;
0614608
02/09/28 05:18ID:9vPkzBLdにゃ、確かにコレでは×ですね。でもこれもやっぱり例題なのでし(^^;
こっちのテスト環境では「users_pre」なのでしね
0615nobodyさん
02/09/28 05:33ID:2Rxq6k1c0616nobodyさん
02/09/28 17:12ID:???例がひどすぎることが指摘されてるんだから、もう一回書き直せば?
あと、そのSQLを発行したらなんと言って怒られたかぐらいも書けば?
更に何故マニュアルを見ないの?
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/release-6-3.html
あんまし、まじめに調べる気にもならんかったから的外れかも知れんが
副SELECTの実装はこの辺りかららしい。
0617608
02/09/29 03:08ID:6ztDeH/mでは改めて
SELECT COUNT(*) FROM (SELECT DISTINCT TEL FROM users_pre WHERE TEL = '03%') AS TEMP_TABLE
で
parser: parse error at or near "select"
となります
0618608
02/09/29 03:08ID:6ztDeH/m失敗。
SELECT COUNT(*) FROM (SELECT DISTINCT TEL FROM users_pre WHERE TEL Like '03%') AS TEMP_TABLE
でした
0619608
02/09/29 03:32ID:6ztDeH/mロジック(今回はJSPだが)で実装するしかないのかよー
0620nobodyさん
02/09/29 16:32ID:???ってのは、Postgreだとどうなるんですか??
Postgreも日付を加減したら日数になるの?
0621620
02/09/29 16:45ID:???"WHERE this_date < to_date('7日前')"ですかね?
7日前ってのは"'now'-7"??
0622nobodyさん
02/09/29 16:45ID:???Oracleは知らんので同じ意味かどうか分からんけど
"WHERE this_date < 'current'::timestamp - '7 day'::interval"辺りか?
0623620
02/09/29 17:03ID:???"::型"で型宣言するのね。
"SELECT this_date-1" で1日前の日付、
"SELECT current_date-this_date" で日数差も出ますた。
"SELECT now()-this_date" だとintervalになるのね……。
0624nobodyさん
02/09/30 02:51ID:NEg9lBdJ7.3dev (built 2002-09-24) のJDBC3ドライバは
7.1でも動作する下位互換性はあるのでしょうか?
それとも7.3用に作られているのでしょうか?
(Development Driverだから動作が不安定とかいうことではなく
動作対象として7.1も考慮されているかということ)
0625624
02/09/30 02:52ID:???0626v
02/09/30 04:59ID:XCndXDeC0627nobodyさん
02/09/30 21:37ID:Lh/LQWZcServletがJDBCドライバを読み込んでくれません。
#コンパイルしたあと、サーバーにおいてアクセスすると
#ClassNotFoundExceptionが出る。
JDBCドライバは
http://jdbc.postgresql.org/download.html
から落としたpgjdbc2.jarで、これにCLASSPATHを指定しています。
どうすれば使えるようになるのでしょうか。。。
環境は
Postgres7.1.1
JDK1.4.1
アプリケーションサーバーにTomcat4.1.10を使ってます。
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 の本と混同し
そうなヨカン。
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スレッドを格納するテーブルはバチっと決めておいて、
レコードとしてスレッド格納するように設計すれば?
0771767
02/12/05 00:07ID:6rvWMyhf最終的には、ツリーっぽいデータ形式にしたい。(スレッドの中にスレッド)
だから、レコードに詰め込んでいくと苦しくなりそう。
で、ばしばしテーブルを増やすことは、無駄なこと、なのかな??
ある程度大きくなることが期待されないと、読むときの効率が悪くなる。?
具体的には、テーブルの生成によるオーバーヘッドみたいな物とかは、存在するのか。
0772nobodyさん
02/12/05 00:26ID:vXkLaZQHそのために、DB設計とか、スキーマ設計ってものがあるんだから。
テーブル内で、あれこれやるのはいいだろうけどさ。
商用プロジェクトだったら、必ずDB設計書を書くだろ。
動的に生成されるテーブルがあるなんて、あんまり聞かないぞ。
0773nobodyさん
02/12/05 00:40ID:6rvWMyhf他にちょうどいいのを探すか・・
0775nobodyさん
02/12/05 01:06ID:Ejjyn6K+正規化していないのがばれまくり・・・
0776nobodyさん
02/12/05 01:11ID:vXkLaZQHだから、メンテできなくなるDBが多いんだよ
0777nobodyさん
02/12/05 01:15ID:???記事の場合は題名と日付と投稿者と本文しかありえないんだから、テーブルいくつも作っちゃだめ。
0778nobodyさん
02/12/05 01:29ID:???これは、田舎のひなびた小さな学校のHPを100万ヒットの
人気HPにしてあげようという運動です。現在のターゲット校は上記です。
多くの皆さんクリックしてあげて下さい。
HPに飛んだら、2,3回更新していただくと、もっとありがたいです。
どんどんコピペして他の板にまいてください。
http://www.KissLoveTOCO.com/
0779nobodyさん
02/12/05 01:56ID:6rvWMyhf0780名無しさん@Emacs
02/12/05 04:53ID:???スレタイにスレID振ってカキコにもスレID振ってjoinつーのが
普通の設計だべ?多分。
0782nobodyさん
02/12/05 11:27ID:???別んとこにsequenceだけ持っておく、というのもアリかも。
0783nobodyさん
02/12/05 16:31ID:zuT0nBpDスレタイテーブルに最終番号をつけといて
BEGIN;
SELECT 最終番号 FROM スレタイテーブル;
INSERT INTO カキコテーブル(スレid, 最終番号 + 1, メッセージ, ...);
UPDATE スレタイテーブル SET 最終番号=最終番号 + 1;
COMMIT or ROLLBACK;
うちはこうしてる。
>>773
SQLだけでもできるけどメチャクチャ遅くなる。
メモリに読みこんでバイナリツリーかな。
レコードに親番号が入ってれば何とかなるよ。
0784nobodyさん
02/12/05 18:09ID:???CREATE GROUP
は使えますか?
CREATE GROUPの行でエラーになるんですが、
原因の特定がうまくできないもので。。。
使えるか使えないかだけでも、わかる方いらっしゃいませんか?
0785nobodyさん
02/12/06 18:47ID:n3ITkPRWselect case NUMBER when NUMBER is null then '1' else NUMBER end from AAA ;
0786ポトスグレと弱気に発音
02/12/06 19:23ID:e3P89aGIまぁ、なんとかユルユルと走らせる程度の事はできるんだけど、
何やらよくわからんのはバキュームやらバックアップやら。
バキュームっつーのはつまり、ノートン先生のスピードディスクみたいなもん?
バックアップは通常全部のSQLをどっかに溜めるとかするのか?
バキュームやらバックアップやらはPostgreを走らせながらできるの?頻度は?
なんて事を小学生でもわかるぐらいの平たい文章で説明してるサイト
とかないものか・・・と
0787nobodyさん
02/12/06 20:34ID:RV7qzP6C型変換だろ?
つまりインテガーとかブーリアンだからそうなるのよ。
わかる?
0788nobodyさん
02/12/06 20:35ID:WQv5Y1p0シーラカンス本を読むといいよ。
0789ポトスグレと弱気に発音
02/12/06 23:32ID:e3P89aGIありがとうございます。ちょいと本屋で購入してみます。
0790nobodyさん
02/12/08 04:30ID:cZH6KLf5windowsからtcp/ip経由で接続時、パスワードを入力しても不正と言われログインすることが
出来なくなってしまいました。
pg_hba.confなどは特に変更していないのですが、何か設定しなければいけないものがあるんでしょうか?
(認証方法をtrustにすると、tcp/ip経由でもログインすることは可能になります)
0791☆☆☆☆☆
02/12/08 05:20ID:mpITnhtZ0792nobodyさん
02/12/08 12:55ID:???http://developer.postgresql.org/docs/postgres/client-authentication.html
0793nobodyさん
02/12/08 16:53ID:CK0ZspDsMacOS X のエクセルで作ったcsvファイルをインポートしたいんですが、
うまくいきません。たぶん、sjisからuecに変換すりゃいいとおもうのですが、
TextEditでEUCにして保存してもエラーがかえってきてしまいます。
で、MacOS Xで動くPostgreSQL用のGUIクライアント(ファイルインポート付き)という都合の良いものはないでしょうか。
当方、筋金入りのマカーなのでWindowsなんてものは自宅にありません。すいません。
0794nobodyさん
02/12/08 17:49ID:???エラーが出る前後のデータをよく見てみれば?
0795nobodyさん
02/12/08 18:59ID:J0X/eNGYエラーメッセージを書こう。
0796nobodyさん
02/12/09 16:35ID:8KLf+wGF犬 | ゴン助 | 中型
犬 | カール | 小型
猫 | チャトラン | 長毛
猫 | クロ | 短毛
というテーブルと
犬 | 01
猫 | 02
というテーブルがあった場合、VIEWなりで検索結果を
犬 | 01 | {パトラッシュ,ゴン助,カール} | {大型,中型,小型}
猫 | 02 | {チャトラン,クロ} | { 長毛,短毛 }
なり
犬 | 01 | {{パトラッシュ,大型},{ゴン助,中型 },{カール,小型}}
猫 | 02 | {{チャトラン,長毛},{クロ,短毛 }}
なんて配列に格納し直す方法って、ありますか?
サブクエリーでは、複数の検索結果を入れ込むことが出来ず、やはり
FUNCTIONを作ってLOOPなりWHILEなりで回すものでしょうか?
0798nobodyさん
02/12/09 20:33ID:KNhGAZpk*.sqlを間違えて削除してしまいました・・・(泣)
0799nobodyさん
02/12/09 22:13ID:???データを出さずにテーブル定義だけを出力するオプションもあったはず。
0801nobodyさん
02/12/10 12:53ID:???ものをSELECTするってどういうSQL書けばいいんだっけ?
0802gn355my0
02/12/10 14:04ID:???あ〜 そーゆーの昔流行ったよね〜
オトコにはあるけどオンナにはないもの
とか
ポパイは2でオリーブは1
とかってやつだろ?
この問題は難しいなぁ。。。もうちょっとヒントくれない?
0803nobodyさん
02/12/10 14:29ID:8bCVhaMrFROM区でAとBをLEFT JOINして、WHERE区でB.idがNULLのヤツだけ選べ。
漏れの借りてる鯖のPostgresは7.0.3だから、JOINが使えなくて試せなんだ、すまん。
0804801
02/12/10 17:41ID:???ありがとうございます。
SELECT * FROM table_a NATURAL LEFT JOIN table_b WHERE table_b.id = NULL
で出来ました。
0806nobodyさん
02/12/13 11:00ID:kiLZZUkt他にもこの現象起きてる人っている?
0807bloom
02/12/13 11:02ID:wUIKbYLkhttp://www.agemasukudasai.com/bloom/
0808nobodyさん
02/12/16 13:10ID:???SERIAL型は追加できないのでしょうか?
ALTER TABLE T_EmpEmerg ADD seq_id SERIAL;
0809nobodyさん
02/12/16 15:21ID:???テーブル名はtestね。
serial型を追加しようとすると、
ERROR: Adding columns with defaults is not implemented.
Add the column, then use ALTER TABLE SET DEFAULT.
と言われたから指示通りに
create sequence test_id_seq;
alter table test add column id integer;
alter table test alter column id set not null;
alter table test alter column set default nextval('public.test_id_seq'::text);
とやったらできた。
ちょっとは自分で試してみたの >808
0810nobodyさん
02/12/16 16:20ID:qVo6yZm2問い合わせ結果でnullのときは0を返し、そうでないときは結果そのものを返す、
としたい場合は、どうしたらよいのでしょうか。
0811nobodyさん
02/12/16 16:34ID:???ALTER TABLE test ADD seq_id SERIAL;
としたらエラーになったので
ALTER TABLE test ADD seq_id SERIAL SET DEFAULT 0;
とかやってました・・・。
先にCREATEするんですね。ありがとうございました!
>810
CASEをつかえば出来ると思います。↓
http://www.postgresql.jp/document/pg721doc/user/functions-conditional.html
0812nobodyさん
02/12/16 17:25ID:???810です。
CASEでできました!
ありがとうございました。
0813nobodyさん
02/12/16 18:07ID:ahIqt+Qvますた。
6.5.3って outer join の概念さえないって本当れすか?
0814nobodyさん
02/12/16 18:12ID:???0815nobodyさん
02/12/16 18:15ID:ahIqt+Qv0816bloom
02/12/16 18:44ID:A19iV2CPhttp://www.agemasukudasai.com/bloom/
0817nobodyさん
02/12/16 18:46ID:???outer join がどういう集合かをよく考えましょう。
たとえばテーブル a と b についてそれぞれの id 列で left outer join するなら
select .... where a.id = b.id union select .... where a.id not in (select id from b);
みたいな感じでいけたと思います。
7.1 が出る前は PostgreSQL の FAQ みたいなもんだったので、探せばこの辺の
解説をしてるドキュメントが色々見付かるんじゃないでしょうか。
0818あぼーん
NGNG0819nobodyさん
02/12/17 14:52ID:6p0SRl9wpgadmin2も使ってみましたが、いまいちでした、、
Enterprise Managerみたいのが、あると良いなぁ、、
0820nobodyさん
02/12/17 17:36ID:6p0SRl9wpsqlで、フィールドの削除のやりかたが分からないのです。
7.3ならできるのでしょうか?
0821nobodyさん
02/12/17 18:18ID:???7.3は知りませんが、7.2.3ではカラムの削除について下記に書いてあります。
http://www.postgresql.jp/document/pg721doc/reference/sql-altertable.html
下のほうです。
0822nobodyさん
02/12/18 23:06ID:???GRANT ALL ON * TO PUBLIC;
みたいなのでできれば楽なんだけど。
0823nobodyさん
02/12/19 02:30ID:FGefAUMKPostgreSQLのバキュームについて教えてください。
当方6.5.?なので、バキュームは非常に不安定です。
また、バキュームだけではインデックスは作り替えてくれません。
ですので、代わりにDBのメンテとして
pg_dumpでバックアップし、dropdb,createdbをして
psqlで復元するという方法を使おうと思うのですが、
問題ないですか?
(一度バキュームでDBが壊れたことがありますので。。。)
0824nobodyさん
02/12/19 18:24ID:???timestamp without time zone で作ったカラムを with time zone で取り出したりできまつか?
仕様ころころ変えんなやなぁ。
0825nobodyさん
02/12/20 03:03ID:???0826nobodyさん
03/01/07 00:53ID:???http://usogres.good-day.net/
http://www.fastconnector.com/
こういうものもあるケド、実際にレプリケーション
やったという経験のある人の意見を聞きたいです。
0827nobodyさん
03/01/10 11:30ID:fFednd0xpostgresqlを稼働させています。
文字コードをEUC_JPにしたいのですが、
redhatデフォルトだと、
template1 | postgres | SQL_ASCII
とSQL_ASCIIになります。
ソースからインストールするときは、./configure
で指定するやり方は知っているのですが・・・
お手透きの時で結構ですので、ご教授願います。
0828nobodyさん
03/01/10 15:49ID:???Redhatは使ったことが無いのでどういったオプションで
コンパイルされてるかはわかんないけど、
initdb -E EUC_JPとかcreatedb -E EUC_JPではどうですか?
0830nobodyさん
03/01/11 03:02ID:???http://www.postgresql.jp/document/pg721doc/admin/multibyte.html
をみると、それでいいみたい。
0831nobodyさん
03/01/11 21:35ID:yqAMD38w0832山崎渉
03/01/15 13:33ID:???0833nobodyさん
03/01/16 16:40ID:ru9T9Sg6例えば、2002年12月中のデータだけ抽出するには、どんなパラメーター
で出来ますか?
強引に、
TIMESTAMP>'2002-12-01 00:00:00 AND TIMESTAMP<2002-12-31 23:59:59'
とすれば出てきますが、アプリケーションからパラメタとして引き渡すのに
しんどいです。
0834nobodyさん
03/01/16 19:19ID:n/WrAFU3WHERE to_char(TIMESTAMP, 'YYYY-MM') = '2002-12'; じゃダメ?
0835834
03/01/16 19:31ID:n/WrAFU3「2002年」だけとか「12月」だけとかなら、以下の方法でもいいかも。
http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/2000Jun/msg00574.html
1.誕生月を指定して、検索(SELECT)するには?
(6.5.3)
SELECT * from birthday from where date_part('month', birth)='6';
SELECT * from birthday from where date_part('month', birth)='06';
(7.0 or later)
0836834
03/01/16 19:35ID:???[pgsql-jp 15577] Re: 日付型のSQLについて
http://ml.postgresql.jp/pgsql-jp-old/pgsql-jp/2000Jun/msg00616.html
0837833
03/01/17 11:11ID:tgNj6nW9>>835
>>836
ありがとうございます。
試してみたら、めちゃくちゃレスポンスが悪かったです。
>>836の紹介記事にもあったのですが、変換したりすると、せっかく設定
したインデックスが使われないようです。
諦めて、しんどい方法でやっていくことにします。
0838nobodyさん
03/01/17 15:04ID:O7wqB+4aIs the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
createdb: database creation failed
というようなエラーが出てしまい、データベースを作成することができません。
postmaster は起動しているようです。
どうしたらいいのでしょうか?
0839vvv
03/01/17 15:15ID:RZuaWe8+★YAHOOOプロフィール★
0840nobodyさん
03/01/19 17:40ID:???man postmasterして-iオプションの項目を読め。
それでも分からなければ、どういう環境でどうやっらだめだったかを書け。
0842nobodyさん
03/01/20 17:54ID:Gy69YlCs遅レスすまそ。
レプリケーションは7.3で導入する予定だったんだけど間に合わず、
7.4に持ち越しになったんじゃなかったっけ?
というわけで、現行のレプリケーション用ミドルウェア?は
なくなるような気がする罠
0843nobodyさん
03/01/20 18:40ID:frlninEM0844nobodyさん
03/01/20 20:16ID:???レプリケーションは、アーキテクチャや実装、運用環境によって、
複数のソリューションが並立し得るので、
単一の実装に収斂していくということはないでしょう。
0845nobodyさん
03/01/21 21:43ID:k4hDw3acPostgres での負荷分散と分散トランザクションについての特集やってたよ。
かなり面白い。
0846nobodyさん
03/01/22 17:56ID:46vMCsSo端末は、主にwinから行っています。
SQLに関しては自信があまりありません。
SQLコマンドポチポチうって、テーブルの作成するの面倒でつ。
http://www.hi-ho.ne.jp/tsumiki/のCSEと言うツールを使っているのですが、
いまいちしっくり来ません。
webminのpostgresqlのツールは良いのですが、webmin自体
あまりインスコしたくありません。
なにか(・∀・)イイ!!ツールあったらおしえてください。
0847nobodyさん
03/01/22 18:23ID:aZrGkOwn0848hmk
03/01/22 18:45ID:skROudWDテキストエディタでテーブル定義のSQLを編集し、psql上にコピペしろ。
0849nobodyさん
03/01/22 18:59ID:???まぁテーブル定義のSQLは自分で書くわけだが。
0850nobodyさん
03/01/22 19:45ID:???psql -f table.sql でファイルを読ませればいいじゃん。
0851hmk
03/01/23 00:21ID:???0852nobodyさん
03/01/23 01:33ID:aJndFgwsを使って住所録を作ってます。
そこに「最初に登録した日付」と、「最終更新日」をいれようと
思ってるんです。
最終更新日をTIMESTAMPにすればいいというのは、
検索してわかったんですが、最初に登録した日付というのは
どういう設定をすればいいでしょうか。
0854ほげ
03/01/23 10:36ID:Vttepi7gdefault now,
ほげほげ。
0855nobodyさん
03/01/23 15:18ID:2Xl85Zl1"pg_relcheck" does not exist
になりました。pg_relcheckはなくなっちゃったんでしょうか。
0856nobodyさん
03/01/23 16:16ID:MK3OE1fp★こんなサイト見つけました★
0857nobodyさん
03/01/23 17:24ID:zqFajCIjこのページを pg_relcheck と pg_constraint でページ内検索してごらん。
http://osb.sra.co.jp/PostgreSQL/7.3/changes.html
0858nobodyさん
03/01/24 20:45ID:+YoyoLvT0859nobodyさん
03/01/27 23:38ID:qiTUaeBV$ psql -U username dbname < database/database.pgsql
と実行すると
\connect: FATAL: user "root" does not exist
となってしまいます。どの設定(環境変数?)を訂正すれば
よいのでしょうか。
0860nobodyさん
03/01/28 15:08ID:oYLjlQQn0862nobodyさん
03/01/29 20:04ID:TOlFKMtQ複数テーブルの特定の列の中から検索したいんです
下記のようにテーブルを必要なところだけ結合して
そのあと検索文字をいれればいいと思ってたんですが
SELECT A.m,B.n FROM A,B WHERE A.o = B.o
このあとに検索したい文字をいれてもだめなんですよね?
0863nobodyさん
03/01/29 21:11ID:???SELECT A.m,B.n FROM A,B WHERE A.o = B.o AND A.m LIKE '検索言葉%'
はできましたが、
A.m,B.nに対して同じ検索言葉で検索をかけたいんですが
どうすればいいでしょうか・・・
0864nobodyさん
03/01/29 22:03ID:???WHERE ( a.a = b.a OR c.c = d.c) AND (e.e = f.f)
とかそういう単純な話ですか?
SQLはどこで(あるいはどの本で)勉強してます?
0865nobodyさん
03/01/31 18:45ID:9q8lNi9S0866nobodyさん
03/02/03 00:09ID:NaYZglLl最近のWin版ポスグレは、どうなのん?
http://download.desk.ne.jp/win/2/00026/4991.html
http://www.nonsensecorner.com/pgsql/
0867nobodyさん
03/02/03 01:05ID:???一年半ぐらい前に入れたときは自分でcompileしたんだが今のはcygwinのインストール時にインストールできる。
性能はどうだろうなぁ。普段使ってるLinux鯖はCPUパワーも違うのでよく分かんないや。
Win用apache、PostgreSQL@cygwin、php@winでちょっと遊んでみたけど、
ローカルで実験するには問題ないみたい。
ついでにFireBird、MySQLも入れてみたが、どれも正常に動いた。
0868nobodyさん
03/02/03 01:18ID:lZTOrefbアクセス権限付けれん?
grantだとテーブルごとじゃんか
0869nobodyさん
03/02/03 02:12ID:???せめて個人用途向けにはFreeで出して欲しかったよ。
Native版pgsqlの作者もPowerGresの開発に携わっていたみたいだが、
7.3.1用psqlは作っていたからその後も継続すると思うんだが。
0870nobodyさん
03/02/03 10:57ID:avIlzK7i0871nobodyさん
03/02/03 16:28ID:KAKRkF84WinならFirebirdだろやっぱり。
0872nobodyさん
03/02/03 20:46ID:UWLHra2gまだベータなのでしかたないのかもしれないけど。
CREATE TABLE test (
code VARCHAR(64) NOT NULL,
field001 VARCHAR(64) NOT NULL,
〜
field032 VARCHAR(64) NOT NULL,
PRIMARY KEY (code)
)
(本当はfieldをもっと増やしたかったけど、firebirdの制限に引っかかるため)
これに3万レコードINSERTして、
SELECT * FROM test ORDER BY code;を発行すると、
MySQL-MyISAMが00:13:79
MySQL-InnoDBが00:09:413
Firebirdが00:14:010
PwerGresが13:06:851
ちなみにテストして思ったけど、FirebirdのJDBCドライバってリークしてない?
0873nobodyさん
03/02/04 01:18ID:1kJ2WuvK0874nobodyさん
03/02/04 01:48ID:???元になってるInterBaseは実績あるよ。
続けるならスレ違いになりそうだから、プログラム板にどうぞ。
てか、最近そっちにスレがあることに気付いた(w
0875873
03/02/04 11:18ID:1kJ2WuvKThx!!
0876nobodyさん
03/02/04 13:12ID:P8TNJ8CdPowerGresに期待したいのだが、こっちも微妙だ。
0877nobodyさん
03/02/04 13:56ID:1kJ2WuvK0878nobodyさん
03/02/04 14:00ID:P8TNJ8Cd0879nobodyさん
03/02/04 18:54ID:ECWcc/cR5.0で実装されるらしいけど。
サーバーサイドでFirebirdを使った場合、
同時アクセス200以上に耐えうるかも疑問。
SQLServerだと200くらいから性能が落ちてくるみたいだし。
http://www.eweek.com/article2/0,3959,293,00.asp
0880nobodyさん
03/02/04 19:48ID:Ogsd33ZD0883nobodyさん
03/02/05 16:40ID:WE3fnQsD「SQL-Serverはダメだ」
米セキュリティ企業大手も、SQL鯖には落第の"F"をつけたらしいじゃん。
0884nobodyさん
03/02/05 17:00ID:???あるいはパッチの副作用が大きくて管理者に敬遠される、という点から見ても
「SQL Serverはダメ」という結論になるわけで。
0885nobodyさん
03/02/05 17:48ID:???管理者といってもDB管理だけの場合もあるし、ネットワーク全体を押さえてる場合もあるわけだが。
やらなくちゃいけない仕事(分野)が多いのも一因かもね。
0886nobodyさん
03/02/05 20:20ID:???0887nobodyさん
03/02/06 11:38ID:???0889nobodyさん
03/02/07 01:27ID:oK4qVqpT> てかDBへ接続できるポートを外部に開いてる時点で、その管理者が終ってる気がするな。
PostgreSQLやOracleのSSLサポートはイントラでのセキュリティー用かな?
0890nobodyさん
03/02/07 06:23ID:???0891nobodyさん
03/02/07 16:55ID:mSK6L1IK0892nobodyさん
03/02/07 17:19ID:mSK6L1IK0893nobodyさん
03/02/07 17:26ID:mSK6L1IK0897nobodyさん
03/02/08 13:29ID:???unicodeを受け取ったサーバがconversionかましてeuc-jpで保存するって話。
0899nobodyさん
03/02/08 21:55ID:WzdldZAx漏れも試した。
PowerGres萎え。
50クライアント制限萎え。
0900nobodyさん
03/02/09 22:03ID:???0901nobodyさん
03/02/10 18:38ID:zGVQOlgyhttp://osb.sra.co.jp/PowerGres/pre_sales.php
特別価格の3万8000円(税別)らしいが、
買う予定の香具師いる?
0902nobodyさん
03/02/10 19:52ID:???0904nobodyさん
03/02/11 14:19ID:???とりだせるように検索条件に指定することって可能なのでしょうか?
0907905
03/02/11 14:39ID:???ash さんのページの URL きぼーん。
ぐぐったら以下のような有様。
http://www.google.com/search?num=50&lr=lang_ja&ie=euc-jp&q=%61%73%68%A4%B5%A4%F3%A4%CE%A5%DA%A1%BC%A5%B8
あ、これか。PostgreSQL・Tips集
http://ash.or.jp/db/pg_tips.htm
質問して解決したらなるべく情報源とか貼ってね。後の人の役にも立つから。
0908nobodyさん
03/02/12 17:00ID:???emailという、カラムで重複を抽出するには?
0909nobodyさん
03/02/12 17:36ID:???SQL辞典買うよろし。オレも欲しい。
0910nobodyさん
03/02/13 00:27ID:???0913nobodyさん
03/02/13 22:43ID:???FROM users
GROUP BY email
HAVING count(*) > 1
email name
-------------------
aaa@bbb.com aaa
aaa@bbb.com bbb
…
こんな感じかな?
0914nobodyさん
03/02/13 22:50ID:???"PowerGresとは"より
「UNIX/Linux で定評のある オープンソースデータベース PostgreSQL が身近になりました。」
値段のお陰で縁遠になっている悪寒。
0915nobodyさん
03/02/14 11:08ID:???それだとnameがグループに入ってないと怒られるのですけど。
実際にuniqid,name,emailとあるのに…。なぜでしょう?
WHERE EXISTS(
SELECT email FROM users Y WHERE Y.uniqid = X.uniqid
GROUP BY email HAVING count(*) > 1
)
0918913
03/02/15 00:02ID:???usersテーブル(uniqid,email,name)
VIPテーブル (uniqid,users_id,name)
だとして、「usersの中で、users.uniqidがVIPのusers_idに含まれている人」
を探す為に
SELECT *
FROM users
WHERE EXISTS(
SELECT *
FROM VIP
WHERE users.uniq_id = VIP.users_table_id
)
って使うもんだと思うんだけど、、
usersテーブルのuniqidと同一のテーブルをEXISTSの中に書く意図は何?
それに、EXISTSの中のSELECT文にGROUP BYって書いたこと無いから
挙動がいまいちつかめません…。
とりあえず、EXISTSの中はリファレンス本の例とかにあるような単純な
使い方が無難かと。。
ちなみにリファレンス本は、技術評論社の「SQLポケットリファレンス」が
使いやすくてオススメ。
2000円位で、技術系書籍として安いし。
Postgres対応ではないからLIMITとかは載ってないけど、大方これで済む。
0919913
03/02/15 00:11ID:???SELECT email, name
FROM users
GROUP BY email
HAVING count(*) > 1
これだめ(w
SELECT email, name
FROM users
GROUP BY email
HAVING count(email) > 1
か
SELECT email, name
FROM users
GROUP BY email, name
HAVING count(*) > 1
のどっちかで動くよ…多分。
#以前仕事でPostgres使ったことあるからついカキコしてしまったけど、
#今は職業プログラマじゃ無いし、自分のLinuxにPostgres入れてないから
#実験もできん(w
#無責任でスマソ
0920913
03/02/15 00:21ID:???SELECT email, name
FROM users
GROUP BY email
HAVING count(name) > 1
こうかも…。
GROUP BY〜HAVING SUM(〜)とかCOUNT(〜)とかは
よく考えないとエラーになりがちなんだけど、
自分が思った以上にSQLに対する感覚が鈍ってる(w
(使う目的ないけど)リハビリ目的でPostgresインスコしようかなぁ…。
つか誰かうまく説明できる人ににバトンタッチしたひ。
0921nobodyさん
03/02/15 02:13ID:S3poV9Xb0922nobodyさん
03/02/15 17:58ID:/trbWmidno SERIAL, -- 自動で連番
name text,
tel text,
fax text
);
INSERT INTO tbl(name) VALUES('tanaka');
たとえば上記のように、SERISALのあるテーブルに
データをINSERTした場合に、noにどの番号が割り当て
られたか、知る方法は無いのでしょうか?
nameは重複する可能性があるのでINSERT後に、
SELECT no FROM tbl WHERE name='tanaka';
とやっても、ダメです。
現在は下記のようにして調べていますが、
いまいち自信がありません。
BEGIN;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
INSERT INTO tbl(name) VALUES('tanaka');
SELECT max(no) FROM tbl;
COMMIT
0923nobodyさん
03/02/15 18:57ID:GmQVtn+rINSERT と同じトランザクションブロックにあるなら、
currval('シーケンス名'); で割り当てられた値を取得できるよ。
ちなみに、次の値は nextval だったかな。
0925名無しさん@XEmacs
03/02/15 23:12ID:???oid使え。
hoge=# insert into a (b) values ('memo');
INSERT 28675 1
hoge=# select * from a where oid=28675;
a | b
---+------
1 | memo
(1 row)
0926nobodyさん
03/02/15 23:18ID:vyjm8srSINSERT されたレコードを特定するという目的ならこれもいいね。
ただ、割り当てられた OID ってどうやって取得するの? 目視?
0927tantei
03/02/15 23:37ID:???●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール hentaimtt@k9.dion.ne.jp
グローバル探偵事務局
0929nobodyさん
03/02/17 12:16ID:???CREATE OR REPLACE FUNCTION f(date) RETURNS SETOF record AS '
DECLARE r record;
BEGIN
FOR r IN
SELECT sore,kore FROM t WHERE $1 <= sore and sore < $1+''1month''::interval
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END;' LANGUAGE 'plpgsql';
結果セットのカラムと型をExcelの中にぐじゃぐじゃ書かなくてはなりません
Selection.QueryTable.Sql = "SELECT * FROM f('2003-2-17') AS q(s date, k numeric);"
実際はもっとカラム数が多いのでタイヘンです。できれば、
Selection.QueryTable.Sql = "SELECT * FROM f('2003-2-17');"
だけで済ませたいのですが、いい方法はあるでしょうか? verは7.3.1です
0930nobodyさん
03/02/18 00:43ID:IIRaGRbN返したい列名を定義したテーブルかビューを作っておいて
RETRUNS SETOF テーブル名 AS
ってしてやりゃ、期待通りの動作をするよ。
PostgreSQLは、テーブルやビューはClass(=型)定義として使える。
それを応用するってこった。
0931nobodyさん
03/02/18 12:06ID:???>返したい列名を定義したテーブルかビューを作っておいて
ビューを作ってうまく行きました。有り難うございます。
CREATE OR REPLACE VIEW v AS
SELECT sore, kore FROM t WHERE false;
CREATE OR REPLACE FUNCTION f(date) RETURNS SETOF v AS '
SELECT sore,kore FROM t WHERE $1 <= sore and sore < $1+''1month''::interval
' LANGUAGE 'sql';
0932
03/02/19 15:56ID:ce+34SG0を取得する方法を教えてください?
0933nobodyさん
03/02/19 16:44ID:???0934nobodyさん
03/02/19 16:45ID:???そもそも更新日時を取りたいという発想自体が間違いだと思うが。
0935nobodyさん
03/02/19 17:38ID:???とりあえずそれ用のフィールドを作って、更新時のトリガーで時間を設定。
重要なテーブルに関してはログと証拠を残すという意味で
そういう手段をほどこしたほうがいいんじゃないかな。
まぁ、物理的にログを残す動作をしておかなければわからないということかな。
0936nobodyさん
03/02/20 13:04ID:???こう言うこと?
create table hoge (i integer, t timestamp default current_timestamp);
hoge=# insert into hoge (i) values (12);
hoge=# select * from hoge;
i | t
----+-------------------------------
12 | 2003-02-20 13:01:45.227974-05
(1 row)
で更新時にtimestamp入れればいいんでないかと?
hoge=# update hoge set i=23, t=current_timestamp where i=12;
UPDATE 1
hoge=# select * from hoge;
i | t
----+-------------------------------
23 | 2003-02-20 13:07:11.440763-05
(1 row)
0937932
03/02/21 15:20ID:???>>934 >>936
やっぱり、テーブルのフィールドにタイムスタンプを設けて
置くしか手は無いんですよね、、、いや、
「あれ?知らない間にデータが変わってる・・・
いついじったんだろ?これ・・・・時間帯がわかれば
誰がやったか想像つくなぁ・・・」
ってことがありまして、、、それで、知りたいなって
思ったんです。今後、こういうことが起きてもいいように、
timestamp型のフィールドを設けて
更新時にはカレントを突っ込むようにします。
ありがとうございました。
0938nobodyさん
03/02/24 00:42ID:???いろいろやってみたんですが、なかなかうまくいきません。
マニュアルで to_char や EXTRACT の部分を見てもそれらしいものが載ってません。
どなたかやってるかたがいましたら教えてください。
0939nobodyさん
03/02/24 00:57ID:???過去の値と現在の時刻をエポックに変換して、
一日の秒数で丸めて、
現在から過去を引いて一日の秒数で割って日数を出す、
かなぁ。
0941nobodyさん
03/02/24 12:35ID:???940のようなやり方、なんかの参考書には書いてあったなあ。
公式ページを書籍化したやつだったかも。
おれもおんなじような事でけっこう悩んだ記憶が。
0942936
03/02/24 14:37ID:???936 の hoge テーブルでやってみました。
hoge=# select i, t, date_trunc('day', now() - t) from hoge;
i | t | date_trunc
----+-------------------------------+------------
23 | 2003-02-20 13:07:11.440763-05 | 4 days
(1 row)
0943940
03/02/24 15:53ID:???date型を足し引きすれば日数が返ってくる。
>>942だと、
select now()::date- t::date from hoge;
で、数値のみが返ってくると思う。
0944nobodyさん
03/03/07 14:11ID:ZFWCWq3ylo_unlinkを使用する箇所でエラーと言われました。
もちろん使用しなければエラーと言われません。
動作的に使用しなくても問題はないように思えます。
同じ症状になった人居ますか?
「環境」
Red Hat Linux 7.2
PostgreSQL7.3.2
php-4.2.3
apache_1.3.27
0946sage
03/03/08 17:37ID:/lGvRuDKよろしくお願いします。
0947nobodyさん
03/03/09 16:41ID:???最後まで客のせいにしてるよ。
0948nobodyさん
03/03/09 18:33ID:???書けば書くほどDQNがばれてんのがわからんのか。
ど素人じゃねぇかよ。ワナビーかっつーの。
0949nobodyさん
03/03/09 18:36ID:???> > グレードを提案したが、却下(T_T)。
> とか、
> > どうせ作り直すなら…と、一応試してみようとは思ってますが、それであれほ
> > ど速くなるとはにわかには信じがたく(むしろ遅くなるような気が…)、もし
> > かしてJDBCなんかを使ってないか?などと疑ってます。
> とか、
> なんだか、語るに落ちた感がありますが。
そんなに恥ずかしい事を言っているつもりはなかったのですが(^^;;;
いや、お恥ずかしい限りです。
> いやこの際、素人なのでしっかり勉強しますって気持ちで取り組むのも大切かと。(^
^;
自分よりスキルの高い人間が身近にいない(というか、諸々のML以外では見た
こともない)というのは、良くないですね。忙しさに甘んじて勉強を怠っては
いかん、ということがよくわかりました。
0950小泉に指導される連中って・・・
03/03/09 18:37ID:???> コアなコードはCで書いて組み込むこともあります。
> PHPは入出力と画面遷移、そしてセッション管理だけに専念してくれれば
> いいのではないでしょうか。という発想。
これはやってます(^^)
うちの若いプログラマは、「SQLは嫌いだー」といってなんでもPHPでやろうと
するので、SQLでできないことをPHPでするように口を酸っぱくしています(^^;
0951nobodyさん
03/03/09 18:44ID:0jalCBaQ営業力があって開発に口出さなきゃいい社長になるんじゃないの?
現実には自分よりできる人間は部下にできないだろうがなー(藁
つーかコイズコムデジタルワークス社員は降臨せよ
0952nobodyさん
03/03/09 18:51ID:???( ´∀`)/<先生!こんなのがありました!
_ / / / \___________
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/shinagawa/
0953小泉@コイズコムデジタルワークス
03/03/09 20:10ID:???> うにしか見えません。今見直してどうにかできるなら、最初からそういう設計は
> しないでしょう。
他人のせいにはしているつもりはありません。
0954nobodyさん
03/03/09 20:14ID:???あの一連の話をクライアントが見たら。。。
とかは考えないんだろうな。、きっと。
0955nobodyさん
03/03/09 20:43ID:???0956nobodyさん
03/03/10 01:47ID:dDkCRfq2次々と適当な情報流しまくってる。
なんでドキュソはこう誘発するかねぇ。
0957nobodyさん
03/03/10 02:59ID:???何故あんなに盛り上がるのか。何故あんなに怪しい情報が
錯綜するのか。つかみんな"よく知らないですが"って言い過ぎ(w
想像だけであんなにカキコしてどーすんだべ。
0958nobodyさん
03/03/10 03:17ID:???言い切ると粘着されそうだしなぁ。。。明らかに間違ってるのもあったけど。
まあ、あれは設計しなおさないとダメだろう。
小手先修正で自滅していった歴史を披露してたが、学習してないんだろうか(w
実際に担当してるプログラマのことも言ってたけど、同じプログラマとして彼が不憫で仕方ない...
0959nobodyさん
03/03/10 03:26ID:???「詳しくわかりませんが」はいいけど、「よく知らないですが」はどうかと。
推測ならまだいいけど、想像でっていうのはどうかと。
0960nobodyさん
03/03/10 06:22ID:???PostgreSQLがタダだからってDQN技術者が増えると、
PostgreSQLまでDQNだと思われるよ。。
0961nobodyさん
03/03/10 11:08ID:???おしえて下さい。
0963nobodyさん
03/03/10 21:36ID:???最近使い始めたのですが、遅いです。
CSE使用時の表示で応答時間2.6秒
SQL文の書き方やインデックスの使い方がヘタレ、等の
原因の方が大きいかと思いますが、
単純にマシンをパワーアップさせた場合
処理の高速化にどれくらい効果があるんでしょうか?
あほな例えですがPen4やAthlonの最高速、メモリ1Gとかに変えたとして
今より劇的に速くなったりするんでしょうか。
それとも処理の中身を勉強して最適化した方が有効でしょうか?
インデックス使うとその項目の検索で早くなるんだなぁ、程度の知識ですので・・・
0964nobodyさん
03/03/10 22:17ID:???おまえ、ワザとやってるだろ、、、
0965nobodyさん
03/03/10 22:32ID:???何をやって2.6秒かかったのか詳細に書かなきゃ答えようがない
100万レコード取得しようとして2.6秒ならかなり速いと思うが。
0966963
03/03/10 23:48ID:???select あ,い,う,え,お,か,き,く,AA.け,こ,さ,し,AA.す,せ,AA.そ
from AA LEFT JOIN BB on (AA.た = BB.た and AA.ち = BB.ち),CC,DD
whereAA.け=CC.け
and AA.す=DD.す
order by CC.つ,CC.て,CC.と,BB.な,AA.し,DD.す
AAは10000レコード、BB、CC、DDはそれぞれ1000レコードずつくらい。
・・・だめだ、自分で書いててよく判らん。
出直してくるよ。
0969nobodyさん
03/03/11 01:19ID:???いやむしろ自分か。
0971nobodyさん
03/03/11 01:53ID:???最終的に返ってくるレコード数にもよるけど、もっと速くなりそう。
Explainで実行プランを確認してみ。
Seq scanって出てくるところがあったら、indexつけてvacuumかけて
またExplainしてみてindex scanに変わるかどうか調べる。その繰り返し。
遅いからって短絡的にCPUを速くすればなんて言ってると>>949みたくなるぞ
0972nobodyさん
03/03/11 02:00ID:???単純にメモリ足んないんじゃないの?
0973nobodyさん
03/03/11 02:21ID:???0974973
03/03/11 02:36ID:???[PostgreSQL 2テーブル目]
http://pc2.2ch.net/test/read.cgi/php/1047317680/
0975nobodyさん
03/03/12 19:14ID:???http://hp.vector.co.jp/authors/VA023283/PostgreSQL.html
これ使おうと思ったんですが、
create database出来ますか?
initdb.exeで一つしか作れないんですが…
手としてはフォルダコピーして使うとかでしょうか。
0977nobodyさん
03/03/12 20:29ID:???沈みかけのスレなのに
ご回答ありがとうございまつ。
PHPとかの書き方もちょっと違う感じだし、
cygwin+pgにしておきます。
0978nobodyさん
03/03/12 20:45ID:???PHPの書き方は一緒だろ。
俺の場合本鯖はLinuxなんだが、scriptはWinで書いている。
データベース名が違うのでconnect文だけ環境によって
切り替えるようにしておけば、まったく同一のscriptで桶でし。
0979山崎渉
03/03/13 17:04ID:???0980nobodyさん
03/03/13 21:00ID:???悩んでいます。
WHERE ID=1 ORDER BY T_STAMP DESC limit 5 ORDER BY T_STAMP ASC
これで最後から5つのデータを昇順に取得できません。ORDER BY 句は複数使えない
ようで、offset に -5 などとマイナス値を与えてもエラーがでます。
結局わたしのテーブル設計がまずいとは思いますが、どなたか出来るかたレスください。
0981nobodyさん
03/03/13 22:38ID:???かな。
0982nobodyさん
03/03/13 23:33ID:sXZYIvtYRed Hat 8.0でpostgresql-7.2.2-1を使い始めました
いろんな解説をネットでみてたらインストールしてはじめてPostgreSQLを起動すると
# su - postgres
とすると、スーパーユーザーで起動しデータベースを初期化しますよねそんであとからユーザーを追加するのは
# su -postgres
$ -bash2.05$ createuser foo
....y or nで2、3問質問に答えたら
CREATE USER foo
とめでたく、fooというユーザーが登録出来たのですが
では、いざユーザーネームfooでデータベースを作ったりPostgreSQLに接続するにはどうしたらいいのでしょうか?
ほとんどのPostgresqlのHPの解説ではユーザーの追加までは同じようなことが
詳しくでてますけど、ユーザーでPostgreSQLを起動したり、データベースを作成する解説が少ないと思います、なにも知らない、ど素人なんでスーパーユーザーでやってたら、怖いので宜しく教えて下さい。
0983nobodyさん
03/03/13 23:49ID:???データベースは作成できない。
与えていたら、createdbで作成できる。
0984nobodyさん
03/03/14 00:03ID:bLaxbE1Pサンクス
$ su - postgres
Password:
-bash-2.05b$ createuser foo with password foo
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
-bash-2.05b$ su - foo
su: user foo does not exist
-bash-2.05b$
こうなるうですが.....
0986nobodyさん
03/03/14 00:35ID:bLaxbE1Pサンクス
はずかしいです、できました
0987974
03/03/14 03:24ID:???0988nobodyさん
03/03/14 10:42ID:???0989nobodyさん
03/03/14 16:23ID:???0991nobodyさん
03/03/14 23:33ID:???0994nobodyさん
03/03/15 03:59ID:???http://pc2.2ch.net/test/read.cgi/php/1047317680/l50
0995nobodyさん
03/03/15 03:59ID:???PostgreSQL 2テーブル目
http://pc2.2ch.net/test/read.cgi/php/1047317680/l50
0996nobodyさん
03/03/15 05:15ID:???0997nobodyさん
03/03/15 11:17ID:YPCssbUzParse error:
ばっかりでデバックが難しい、POSTメッソドでデータ入力まではうまく動くのだが、SQL文を書くと同じエラーばっかりだ
Parse error: parse error, unexpected $ in〜 line(最後の行)
PHPでもPostgreSQLでもいいから一行ずつトレースするデバッガーってないのかな?
0998nobodyさん
03/03/15 11:34ID:???それは PHP のパースエラー。スレ違い。
先に SQL 文のひな形を作って、データを sprintf() で埋め込んで
Postgres に渡す SQL を作るようにしてごらん。ミスを防げる。
0999999
03/03/15 11:34ID:???1000次スレ
03/03/15 11:35ID:???http://pc2.2ch.net/test/read.cgi/php/1047317680/l50
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。