PostgreSQL
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/09(水) 11:36ID:GHX.oCXo関連アプリケーション特有の話題は、以下のスレッドへ。
☆関連スレッド
[PHP + PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=983128806
[PHP以外+PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=988929199
[MySQL vs PostgreSQL]
http://corn.2ch.net/test/read.cgi?bbs=php&key=989341364
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]
と言われてしまいます。
どうしたらよいのでしょうか?
#これだけでは情報が足りないのかもしれませんが、
#しかし、どういった情報を提示すれば皆様にお助けいただけるか分からないため、
#それもお教えねがえますでしょうか?
■ このスレッドは過去ログ倉庫に格納されています