asset.stat_cat

Data-Modifying Triggers: This table has BEFORE ROW trigger(s) that modify row data before write. Values you INSERT or UPDATE may differ from what is actually stored. See the Triggers section below.

Cascading Deletes: Deleting rows from this table will cascade to: actor.org_unit.

Deferrable Constraints: The following FK constraints are deferrable — they are checked at transaction end, not statement end: a_sc_owner_fkey, stat_cat_sip_field_fkey.

Columns

Column Type Nullable Default Notes

id PK

integer

No

nextval('asset.stat_cat_id_seq'::regclass)

owner FK

integer

No

actor.org_unit(id)

opac_visible

boolean

No

false

name

text

No

required

boolean

No

false

sip_field FK

character(2)

Yes

asset.stat_cat_sip_fields(field)

sip_format

text

Yes

checkout_archive

boolean

No

false

Primary Key

(id)

Foreign Keys

Column(s) References On Delete On Update Deferrable Constraint

owner

actor.org_unit(id)

CASCADE

NO ACTION

DEFERRED

a_sc_owner_fkey

sip_field

asset.stat_cat_sip_fields(field)

SET NULL

CASCADE

DEFERRED

stat_cat_sip_field_fkey

Unique Constraints

  • sc_once_per_owner: (owner, name)

Indexes

Index Method Definition

stat_cat_pkey PK

btree

CREATE UNIQUE INDEX stat_cat_pkey ON asset.stat_cat USING btree (id)

sc_once_per_owner UNIQUE

btree

CREATE UNIQUE INDEX sc_once_per_owner ON asset.stat_cat USING btree (owner, name)

Triggers

Trigger Timing Event Level Function

asset_stat_cat_sip_update_trigger

BEFORE

INSERT OR UPDATE

ROW

asset.stat_cat_check()

Trigger Bodies

asset_stat_cat_sip_update_trigger

Function: asset.stat_cat_check()
Timing: BEFORE INSERT OR UPDATE ROW

This trigger modifies the row before it is written (returns a modified NEW).

DECLARE
    sipfield asset.stat_cat_sip_fields%ROWTYPE;
    use_count INT;
BEGIN
    IF NEW.sip_field IS NOT NULL THEN
        SELECT INTO sipfield * FROM asset.stat_cat_sip_fields WHERE field = NEW.sip_field;
        IF sipfield.one_only THEN
            SELECT INTO use_count count(id) FROM asset.stat_cat WHERE sip_field = NEW.sip_field AND id != NEW.id;
            IF use_count > 0 THEN
                RAISE EXCEPTION 'Sip field cannot be used twice';
            END IF;
        END IF;
    END IF;
    RETURN NEW;
END;

Referenced By

The following tables have foreign keys pointing to asset.stat_cat (2 referencing table(s)):

Table Referencing Column(s) Referenced Column(s) Constraint

asset.stat_cat_entry

stat_cat

id

a_sce_sc_fkey

asset.stat_cat_entry_copy_map

stat_cat

id

a_sc_sc_fkey