[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 メーリングリストの案内