-- 管理メンバーテーブル更新
-- DROP FUNCTION f_maker_update(kubun int4, name "varchar", password "varchar");


CREATE OR REPLACE FUNCTION f_memberadmin_update(
    kubun       int4,
    name        "varchar",
    passwd    "varchar")
RETURNS int4 AS
$$
DECLARE
    cntcheck integer;
BEGIN
    --
    -- パラメータチェック
    --

    -- 処理区分
    IF kubun IS NULL OR kubun NOT IN (1,2,3) THEN
        RAISE EXCEPTION '処理区分が不正です';
    END IF;

    -- 必須チェック
    IF name IS NULL THEN
        RAISE EXCEPTION '引数 name は必須です';
    END IF;
    IF passwd IS NULL THEN
        RAISE EXCEPTION '引数 password は必須です';
    END IF;

    --
    -- 更新処理
    --

    -- 追加
    IF kubun = 1 THEN
        INSERT INTO t_member_admin_attr(membercd, membernm, password, delflg) 
			VALUES(name, name, passwd, FALSE);

    -- 更新
    ELSIF kubun = 2 THEN
        UPDATE t_member_admin_attr
           SET membernm = name,
               password = passwd
         WHERE membercd = name;

    -- 削除
    ELSIF kubun = 3 THEN
--        UPDATE t_member_admin_attr
--           SET delflg = TRUE
--         WHERE membercd = name;
        DELETE FROM t_member_admin_attr WHERE membercd = name;

    END IF;

    RETURN 1;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;

