[pgsql-jp: 28680] Re: はじめまして
井川 慶太
ikawa.keita @ sanei-hy.co.jp
2003年 1月 15日 (水) 13:39:03 JST
井川です。
早速の回答ありがとうございました。
ご指摘ありがとうございます。
ところで、CREATE権限ってどうGRANTすればよいのでしょうか?
DBスーパーユーザになるしかないのでしょうか?
たとえばユーザAにスキーマBBSのCREATE権限をGRANTするとかはできないでしょ
うか?
よろしくお願いします。
On Wed, 15 Jan 2003 10:15:54 +0900
"Hashimoto, Masaru" <hashimoto-m @ comtecc.net> wrote:
> はじめまして、橋本です。
> いつも質問ばかりですが、私にも分かりそうだったので・・・
>
> トリガは使ったことが無いので分かりませんが、
> PL/PGSQLの構文からですと、
>
> > table_name:="BBS.BBS02"||new.CACODE;
>
> 等の文字列を扱う場合は''(シングルクォーテーション二つ)で囲みます。
> ですので、上の行は
>
> table_name:=''BBS.BBS02''||new.CACODE;
>
> となるかと思うんですが・・・
>
> > new. のあたりかなとは思ってはいるんですが・・・
>
> トリガでは、new. という表記が出来るのですか?
> 通常の関数だと、このnewはRECORDやROWTYPEといった
> 複合型変数で宣言する必要があります。
>
>
> ・・・うーん、こういう書き方でちゃんと回答できてますかね?
>
> > sqlはこんな感じです。
> > --------------------------------------------------------------------------------
> > /*------------------------------------------------------------*
> > * CREATEBBS02
> > *
> > * MABBS01(カテゴリマスター)にカテゴリが追加されたら
> > * 対応するテーブルを作成する。
> > *
> > *------------------------------------------------------------*/
> > CREATE FUNCTION CREATEBBS02() RETURNS OPAQUE AS '
> > DECLARE
> > table_name CHAR(12);
> > a_output VARCHAR(4000);
> > BEGIN
> >
> > table_name:="BBS.BBS02"||new.CACODE;
> >
> > a_output:="CREATE TABLE "||table_name||"(
> > NWCODE CHAR(8) NOT NULL,
> > NWTITL VARCHAR(64) NOT NULL,
> > NWPBCD CHAR(6) NOT NULL,
> > NWTEXT TEXT NOT NULL,
> > NWVWFL CHAR(1) NOT NULL,
> > NWPSWD VARCHAR(8) NOT NULL,
> > NWPATH VARCHAR(32) NOT NULL,
> > NWUPDT TIMESTAMP,
> > NWINDT TIMESTAMP NOT NULL,
> > CONSTRAINT P_"||table_name||" PRIMARY KEY(NWCODE),
> > CONSTRAINT F_"||table_name||" FOREIGN KEY(NWPBCD) REFERENCES MASANEI03(SYCODE) MATCH FULL
> > );
> > COMMENT ON TABLE BBS."||table_name||" IS ""掲示板"""||table_name||";
> > COMMENT ON COLUMN BBS."||table_name||".NWCODE IS ""記事コード"";
> > COMMENT ON COLUMN BBS."||table_name||".NWTITL IS ""記事タイトル"";
> > COMMENT ON COLUMN BBS."||table_name||".NWPBCD IS ""掲載者コード"";
> > COMMENT ON COLUMN BBS."||table_name||".NWTEXT IS ""本文"";
> > COMMENT ON COLUMN BBS."||table_name||".NWVWFL IS ""表示フラグ"";
> > COMMENT ON COLUMN BBS."||table_name||".NWPSWD IS ""パスワード"";
> > COMMENT ON COLUMN BBS."||table_name||".NWPATH IS ""ファイル名"";
> > COMMENT ON COLUMN BBS."||table_name||".NWUPDT IS ""更新日"";
> > COMMENT ON COLUMN BBS."||table_name||".NWINDT IS ""作成日"";";
> >
> > EXECUTE a_output;
> > END;
> > ' LANGUAGE 'plpgsql';
> >
> > CREATE TRIGGER CREATEBBS02 AFTER INSERT ON MABBS01
> > FOR EACH ROW EXECUTE PROCEDURE CREATEBBS02();
> > --------------------------------------------------------------------------------
--
井川 慶太 <ikawa.keita @ sanei-hy.co.jp>
pgsql-jp メーリングリストの案内