[pgsql-jp: 33025] Re: テーブル作成日時の管理方法について
ISHIDA Akio
iakio @ pjam.jpweb.net
2004年 5月 29日 (土) 11:13:24 JST
こんにちは。石田@苫小牧市です。
Satou Hideki wrote:
> こんにちは。佐藤と申します。
> Redhat7.2 + Postgresql 7.4を使用しています。
>
> エンドユーザにPostgresqlを開放していますが、テーブル(ビュー)を
> 使う際に作成日を確認できないと困るので、下記のSQLを発行して
> 必ずコメントで作成日付と時間を登録しています。
>
> UPDATE pg_description
> SET description =
> to_char('now'::timestamp,'YYYY-MM-DD HH24:MI xxマスタ')
> WHERE objoid =
> (SELECT oid FROM pg_class WHERE relname = 'xxマスタ')
> and objsubid = 0;
>
> ※comment文で色々試したのですが関数の結果を組み込めずこうなりました
>
> 現在これで問題なく運用はできているのですが、もう少しスマートに
> 登録する良い方法がないものか(comment文一発で登録できるとか)、
> ここ1年くらいこのメーリングリストや雑誌、ネット検索などで調べたり
> 何かにつけ気には掛けているのですが、未だに良い方法が見つかりません。
スマートかどうかわかりませんが、そのままpl/pgsqlで書くと、
create or replace function comment_time (text) returns void as '
begin
execute ''COMMENT ON TABLE '' || quote_ident($1) || '' IS '' ||
quote_literal(to_char(current_timestamp, ''YYYY-MM-DD HH24:MI ''
|| $1));
return;
end;' language 'plpgsql';
SELECT comment_time('xxマスタ');
という感じになると思います。
それより pg_class にトリガをかけて、create table されたら
自動的に comment あるいは別のテーブルに作成日時を記録してしまう
という方法もありそうな気がします(本当に出来るかは自信ありません)。
--
ISHIDA Akio <iakio @ pjam.jpweb.net/iakio @ mono-space.net>
pgsql-jp メーリングリストの案内