[pgsql-jp: 30215] Re: 外部キーの構成を知る方法

Tadashi Kanbayashi Tadashi.Kanbayashi @ toppan.co.jp
2003年 6月 20日 (金) 16:09:45 JST


佐藤様
ありがとうございます。

KANです。

列名が英語しかないので、
pg_trigger.tgargs をPerlで処理してみます。

ちゃんと定義書で残しておけばよいのでしょうけど、
なかなかメンテも追いつかなかったり。。。

動的にDBの構成が見れるツールはほしいです。
便利だと思います。


----- Original Message -----
送信者 : "cdb01160" <cdb01160 @ hkg.odn.ne.jp>
宛先 : <pgsql-jp @ ml.postgresql.jp>
送信日時 : 2003年6月20日 15:05
件名 : [pgsql-jp: 30213] Re: 外部キーの構成を知る方法


>   佐藤です。
>
> 私が調べた範囲では、7.2.3 ですと、
> pg_trigger テーブルの ri 制約と呼ばれているのが、
> 外部キー制約の事だと思います。
>
> 列名を見つけるのが大変で、
> tgargs bytea   トリガーに渡されるそれぞれ NULL で終結した引数文字列
> の文字列を分析しなければ得られません。
>
> 列名が、英語の場合 tgargs の内容は以下のようになっていて、
>  <unnamed>\000tb3\000tb1\000UNSPECIFIED\000int1\000id\000
> この場合、
> tb3 の int1 列に tb1 の id 列が、外部キーとなって入っています。
> tb3 int1 REFERENCES tb1 id のようにテーブルを定義したわけです。
>
> 日本語の列名を使っていると、
>  <unnamed>\000\276\246\311\312\000\273\305\306
> \376\244\354\300\350\000UNSPECIFIED\000
> \273\305\306\376\244\354\300\350\245\263\241\274\245\311\000\
> 273\305\306\376\244\354\300\350\245\263\241\274\245\311\000
> のようになってしまって、解りにくいのですが、
>
> ここで書かれている数字の意味は、
> \000 が、NULL です。
> その他の \276,\246 等は EUC 漢字コードの 8進表記になっています。
> 例えば \273\305 は、「仕入れ先」 の 「仕」 を表しています。
>
> いかがでしょうか?
>
> 簡単に引っ張り出せる SQL 文があれば私も知りたいです。
> 多分、この数字列を日本語にする関数なんかがあるような気がします。
>
> やっぱり、今作っている、「cse のようなもの」をデビューさせようかな?
> この辺の情報まで、簡単に見れるようになっています。
> (日本語の列名は出ませんけど、、、、、、、)
>
> 以上  佐藤賢治
>
>
>





pgsql-jp メーリングリストの案内