Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources Jobs Sanity Check Index DDL scrips
Description Columns Primary key Check Constraints Foreign keys Unique Keys Options Indexes Referenced by Triggers Partitions

RHNSERVERGROUP

DDL script

Columns

NameTypeNullableDefault valueComment
IDNUMBER(38)N  
NAMEVARCHAR2(64)N  
DESCRIPTIONVARCHAR2(1024)N  
CURRENT_MEMBERSNUMBER(38)N(0)  
GROUP_TYPENUMBER(38)Y  
ORG_IDNUMBER(38)N  
CREATEDTIMESTAMP(6) WITH LOCAL TIME ZONEN(current_timestamp)  
MODIFIEDTIMESTAMP(6) WITH LOCAL TIME ZONEN(current_timestamp)  

Primary key:

Constraint NameColumns
RHN_SERVERGROUP_ID_PKID

Foreign Keys:

Constraint NameColumnsReferenced tableReferenced ConstraintOn Delete Rule
RHN_SERVERGROUP_OID_FKORG_ID WEB_CUSTOMER WEB_CUSTOMER_ID_PK CASCADE
RHN_SERVERGROUP_TYPE_FKGROUP_TYPE RHNSERVERGROUPTYPE RHN_SERVERGROUPTYPE_ID_PK NO ACTION

Options:

OptionSettings
TablespaceUSERS
Index OrganizedNo
Generated by OracleNo
ClusteredNo
NestedNo
TemporaryNo

Indexes:

Index NameTypeUnuquenessColumnsDDL script
RHN_SERVERGROUP_ID_PKNORMALUNIQUEID DDL script
RHN_SERVERGROUP_OID_NAME_UQNORMALUNIQUEORG_ID , NAME DDL script
RHN_SG_TYPE_ID_IDXNORMALNONUNIQUEGROUP_TYPE , ID DDL script

Referenced by:

TableConstraint
RHNORGEXTGROUPMAPPING RHN_ORGEXTGROUPMAP_SG_FK
RHNREGTOKENGROUPS RHN_REG_TOK_GRP_SGS_FK
RHNSERVERGROUPMEMBERS RHN_SG_GROUPS_FK
RHNSNAPSHOTSERVERGROUP RHN_SNAPSHOTSG_SGID_FK
RHNUSERDEFAULTSYSTEMGROUPS RHN_UDSG_CIDFFK
RHNUSERSERVERGROUPPERMS RHN_USGP_SERVER_FK

Triggers

RHNSERVERGROUP_LOG_TRIG

Legend: comment string keyword reserved word operator
CREATE TRIGGER 
rhnservergroup_log_trig
            after insert or update or delete on rhnservergroup
            for each row
            
REFERENCING NEW AS NEW OLD AS OLD
declare
                log_id_v number;
                tg_op char(1);
            begin
                log_id_v := logging.get_log_id();
                if updating then
                    if :old.ID lt;gt; :new.ID then raise_application_error(-20298, 'Cannot update column rhnservergroup.ID.'); end if;
                    tg_op := 'U';
                end if;
                if deleting then
                        tg_op := 'D';
                    insert into rhnservergroup_log (log_id, action, ID, NAME, DESCRIPTION, CURRENT_MEMBERS, GROUP_TYPE, ORG_ID)
                    values (log_id_v, substr(tg_op, 1, 1), :old.ID, :old.NAME, :old.DESCRIPTION, :old.CURRENT_MEMBERS, :old.GROUP_TYPE, :old.ORG_ID);
                else
                    if inserting then tg_op := 'I'; end if;
                    insert into rhnservergroup_log (log_id, action, ID, NAME, DESCRIPTION, CURRENT_MEMBERS, GROUP_TYPE, ORG_ID)
                    values (log_id_v, substr(tg_op, 1, 1), :new.ID, :new.NAME, :new.DESCRIPTION, :new.CURRENT_MEMBERS, :new.GROUP_TYPE, :new.ORG_ID);
                end if;
            end;
            

RHN_SERVER_GROUP_CREATION

Legend: comment string keyword reserved word operator
CREATE TRIGGER 
rhn_server_group_creation
AFTER INSERT ON rhnServerGroup
FOR EACH ROW

REFERENCING NEW AS NEW OLD AS OLD
DECLARE
        org_admin_group      NUMBER;
        org_id_val           NUMBER;
BEGIN
    	org_id_val := :new.org_id;

    	SELECT UG.id INTO org_admin_group
	  FROM rhnUserGroup UG,
	       rhnUserGroupType UGT
	 WHERE UGT.label = 'org_admin'
	   AND UGT.id = UG.group_type
	   AND UG.org_id = org_id_val;

EXCEPTION
        WHEN NO_DATA_FOUND THEN
          rhn_exception.raise_exception_val('no_org_admin_group', org_id_val);
END;

RHN_SERVER_GROUP_MOD_TRIG

Legend: comment string keyword reserved word operator
CREATE TRIGGER 
rhn_server_group_mod_trig
before insert or update on rhnServerGroup
for each row

REFERENCING NEW AS NEW OLD AS OLD
begin
        :new.modified := current_timestamp;
end;

RHN_SG_DEL_TRIG

Legend: comment string keyword reserved word operator
CREATE TRIGGER 
rhn_sg_del_trig
before delete on rhnServerGroup
for each row

REFERENCING NEW AS NEW OLD AS OLD
declare
	cursor snapshots is
		select	snapshot_id id
		from	rhnSnapshotServerGroup
		where	server_group_id = :old.id
		order by snapshot_id;
begin
	for snapshot in snapshots loop
		update rhnSnapshot
			set invalid = lookup_snapshot_invalid_reason('sg_removed')
			where id = snapshot.id;
		delete from rhnSnapshotServerGroup
			where snapshot_id = snapshot.id
				and server_group_id = :old.id;
	end loop;
end;