Annotation: policy.check_menu_policy_trigger

CREATE OR REPLACE FUNCTION policy.check_menu_policy_trigger()
RETURNS trigger

Information: policy.check_menu_policy_trigger

Schema policy
Function Name check_menu_policy_trigger
Arguments
Owner postgres
Result Type trigger
Description

Implementation: policy.check_menu_policy_trigger

CREATE OR REPLACE FUNCTION policy.check_menu_policy_trigger()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
    DECLARE count integer=0;
BEGIN
    IF NEW.office_id IS NOT NULL THEN
        count := count + 1;
    END IF;

    IF NEW.role_id IS NOT NULL THEN
        count := count + 1;
    END IF;
    
    IF NEW.user_id IS NOT NULL THEN
        count := count + 1;
    END IF;

    IF count <> 1 THEN
        RAISE EXCEPTION 'Only one of the following columns is required : %', 'office_id, role_id, user_id.';
    END IF;

    RETURN NEW;
END
$function$