Write Safety Reference

This page consolidates all write-safety concerns across the database. Review this before bulk-inserting or updating data directly in SQL.

Data-Modifying Triggers (BEFORE ROW)

These tables have BEFORE ROW triggers that silently rewrite column values. The data you write is not what gets stored.

Table Trigger What it changes

acq.fund_allocation_percent

acq_fund_alloc_percent_val_trig

Runs acq.fund_alloc_percent_val() BEFORE INSERT OR UPDATE

acq.purchase_order

po_name_default_trg

Runs acq.purchase_order_name_default() BEFORE INSERT OR UPDATE

acq.purchase_order

po_org_name_date_unique_trg

Runs acq.po_org_name_date_unique() BEFORE INSERT OR UPDATE

action.circulation

action_circulation_stop_fines_tgr

Runs action.circulation_claims_returned() BEFORE INSERT OR UPDATE

action.circulation

fill_circ_copy_location_tgr

Runs action.fill_circ_copy_location() BEFORE INSERT OR UPDATE

action.circulation

push_due_date_tgr

Runs action.push_circ_due_time() BEFORE INSERT OR UPDATE

action.hold_copy_map

hold_copy_proximity_update_tgr

Runs action.hold_copy_calculated_proximity_update() BEFORE INSERT OR UPDATE

action.survey_response

action_survey_response_answer_date_fixup_tgr

Runs action.survey_response_answer_date_fixup() BEFORE INSERT OR UPDATE

action_trigger.event_definition

is_valid_retention_interval

Runs action_trigger.check_valid_retention_interval() BEFORE INSERT OR UPDATE

actor.org_unit

actor_org_unit_parent_protect_trigger

Runs actor.org_unit_parent_protect() BEFORE INSERT OR UPDATE

actor.org_unit_setting

log_ous_change

Runs evergreen.ous_change_log() BEFORE INSERT OR UPDATE

actor.stat_cat

actor_stat_cat_sip_update_trigger

Runs actor.stat_cat_check() BEFORE INSERT OR UPDATE

actor.stat_cat_entry

actor_stat_cat_entry_update_trigger

Runs actor.stat_cat_entry_usr_map_cascade_update() BEFORE INSERT OR UPDATE

actor.usr

actor_crypt_pw_insert_trigger

Runs actor.crypt_pw_insert() BEFORE INSERT OR UPDATE

actor.usr

actor_crypt_pw_update_trigger

Runs actor.crypt_pw_update() BEFORE INSERT OR UPDATE

actor.usr

au_update_trig

Runs actor.au_updated() BEFORE INSERT OR UPDATE

actor.usr

user_ingest_name_keywords_tgr

Runs actor.user_ingest_name_keywords() BEFORE INSERT OR UPDATE

actor.usr_activity

remove_transient_usr_activity

Runs actor.usr_activity_transient_trg() BEFORE INSERT OR UPDATE

asset.call_number

asset_label_sortkey_trigger

Runs asset.label_normalizer() BEFORE INSERT OR UPDATE

asset.call_number_prefix

prefix_normalize_tgr

Runs asset.normalize_affix_sortkey() BEFORE INSERT OR UPDATE

asset.call_number_suffix

suffix_normalize_tgr

Runs asset.normalize_affix_sortkey() BEFORE INSERT OR UPDATE

asset.copy

acp_created_trig

Runs asset.acp_created() BEFORE INSERT OR UPDATE

asset.copy

acp_location_fixer_trig

Runs asset.acp_location_fixer() BEFORE INSERT OR UPDATE

asset.copy

acp_status_changed_trig

Runs asset.acp_status_changed() BEFORE INSERT OR UPDATE

asset.copy

autogenerate_placeholder_barcode

Runs asset.autogenerate_placeholder_barcode() BEFORE INSERT OR UPDATE

asset.copy

z_opac_vis_mat_view_del_tgr

Runs asset.cache_copy_visibility() BEFORE INSERT OR UPDATE

asset.copy_location

acpl_validate_edit

Runs asset.copy_location_validate_edit() BEFORE INSERT OR UPDATE

asset.copy_tag

asset_copy_tag_do_value

Runs asset.set_copy_tag_value() BEFORE INSERT OR UPDATE

asset.copy_tag

asset_copy_tag_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

asset.stat_cat

asset_stat_cat_sip_update_trigger

Runs asset.stat_cat_check() BEFORE INSERT OR UPDATE

authority.full_rec

authority_full_rec_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

authority.record_entry

a_marcxml_is_well_formed

Runs biblio.check_marcxml_well_formed() BEFORE INSERT OR UPDATE

authority.record_entry

b_maintain_901

Runs evergreen.maintain_901() BEFORE INSERT OR UPDATE

authority.record_entry

c_maintain_control_numbers

Runs evergreen.maintain_control_numbers() BEFORE INSERT OR UPDATE

authority.record_entry

map_thesaurus_to_control_set

Runs authority.map_thesaurus_to_control_set() BEFORE INSERT OR UPDATE

authority.record_entry

update_headings_tgr

Runs authority.normalize_heading_for_upsert() BEFORE INSERT OR UPDATE

authority.simple_heading

authority_simple_heading_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

biblio.monograph_part

norm_sort_label

Runs biblio.normalize_biblio_monograph_part_sortkey() BEFORE INSERT OR UPDATE

biblio.record_entry

a_marcxml_is_well_formed

Runs biblio.check_marcxml_well_formed() BEFORE INSERT OR UPDATE

biblio.record_entry

b_maintain_901

Runs evergreen.maintain_901() BEFORE INSERT OR UPDATE

biblio.record_entry

c_maintain_control_numbers

Runs evergreen.maintain_control_numbers() BEFORE INSERT OR UPDATE

biblio.record_entry

fingerprint_tgr

Runs biblio.fingerprint_trigger() BEFORE INSERT OR UPDATE

biblio.record_entry

z_opac_vis_mat_view_tgr

Runs asset.cache_copy_visibility() BEFORE INSERT OR UPDATE

config.db_patch_dependencies

no_overlapping_deps

Runs evergreen.array_overlap_check() BEFORE INSERT OR UPDATE

config.db_patch_dependencies

no_overlapping_sups

Runs evergreen.array_overlap_check() BEFORE INSERT OR UPDATE

config.org_unit_setting_type_log

limit_logs_oust

Runs evergreen.limit_oustl() BEFORE INSERT OR UPDATE

metabib.author_field_entry

metabib_author_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.browse_entry

metabib_browse_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.display_entry

display_field_force_nfc_tgr

Runs evergreen.display_field_force_nfc() BEFORE INSERT OR UPDATE

metabib.display_entry

display_field_normalize_tgr

Runs metabib.display_field_normalize_trigger() BEFORE INSERT OR UPDATE

metabib.facet_entry

facet_force_nfc_tgr

Runs evergreen.facet_force_nfc() BEFORE INSERT OR UPDATE

metabib.facet_entry

facet_normalize_tgr

Runs metabib.facet_normalize_trigger() BEFORE INSERT OR UPDATE

metabib.identifier_field_entry

metabib_identifier_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.keyword_field_entry

metabib_keyword_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.real_full_rec

metabib_full_rec_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.series_field_entry

metabib_series_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.subject_field_entry

metabib_subject_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

metabib.title_field_entry

metabib_title_field_entry_fti_trigger

Runs public.oils_tsearch2() BEFORE INSERT OR UPDATE

money.billing

maintain_billing_ts_tgr

Runs money.maintain_billing_ts() BEFORE INSERT OR UPDATE

serial.record_entry

b_maintain_901

Runs evergreen.maintain_901() BEFORE INSERT OR UPDATE

serial.record_entry

c_maintain_control_numbers

Runs evergreen.maintain_control_numbers() BEFORE INSERT OR UPDATE

serial.unit

autogenerate_placeholder_barcode

Runs asset.autogenerate_placeholder_barcode() BEFORE INSERT OR UPDATE

serial.unit

sunit_created_trig

Runs asset.acp_created() BEFORE INSERT OR UPDATE

serial.unit

sunit_status_changed_trig

Runs asset.acp_status_changed() BEFORE INSERT OR UPDATE

serial.unit

z_opac_vis_mat_view_del_tgr

Runs asset.cache_copy_visibility() BEFORE INSERT OR UPDATE

url_verify.url

ingest_url_tgr

Runs url_verify.ingest_url() BEFORE INSERT OR UPDATE

vandelay.queued_authority_record

cleanup_authority_trigger

Runs vandelay.cleanup_authority_marc() BEFORE INSERT OR UPDATE

vandelay.queued_authority_record

zz_match_auths_trigger

Runs vandelay.match_authority_record() BEFORE INSERT OR UPDATE

vandelay.queued_bib_record

cleanup_bib_trigger

Runs vandelay.cleanup_bib_marc() BEFORE INSERT OR UPDATE

vandelay.queued_bib_record

zz_match_bibs_trigger

Runs vandelay.match_bib_record() BEFORE INSERT OR UPDATE

Trigger Side Effects (AFTER triggers writing to other tables)

Writing to these tables automatically causes writes to other tables via AFTER triggers. This can cause unexpected locks or cascading failures in transactions.

Table Trigger Writes to Operation

acq.fund_debit

audit_acq_fund_debit_update_trigger

auditor.acq_fund_debit_history

INSERT

acq.invoice

audit_acq_invoice_update_trigger

auditor.acq_invoice_history

INSERT

acq.invoice_entry

audit_acq_invoice_entry_update_trigger

auditor.acq_invoice_entry_history

INSERT

acq.invoice_item

audit_acq_invoice_item_update_trigger

auditor.acq_invoice_item_history

INSERT

acq.lineitem

audit_acq_lineitem_update_trigger

acq.acq_lineitem_history

INSERT

acq.lineitem

ingest_lineitem_trigger

acq.lineitem_attr

INSERT

acq.lineitem_detail

audit_acq_lineitem_detail_update_trigger

acq.acq_lineitem_detail_history

INSERT

acq.purchase_order

audit_acq_purchase_order_update_trigger

acq.acq_purchase_order_history

INSERT

action.circulation

action_circulation_aging_tgr

action.aged_circulation

INSERT

action.circulation

archive_stat_cats_tgr

action.archive_actor_stat_cat

INSERT

action.circulation

archive_stat_cats_tgr

action.archive_asset_stat_cat

INSERT

action.circulation

maintain_usr_circ_history_tgr

action.usr_circ_history

INSERT

action.circulation

mat_summary_change_tgr

money.materialized_billable_xact_summary

UPDATE

action.hold_request

action_hold_request_aging_tgr

action.aged_hold_request

INSERT

action.hold_request

reporter_hold_request_record_trigger

reporter.hold_request_record

INSERT

actor.org_unit

audit_actor_org_unit_update_trigger

auditor.actor_org_unit_history

INSERT

actor.org_unit

proximity_update_tgr

actor.org_unit_proximity

INSERT

actor.org_unit_setting

log_ous_change

config.org_unit_setting_type_log

INSERT

actor.stat_cat_entry

actor_stat_cat_entry_update_trigger

actor.stat_cat_entry_usr_map

UPDATE

actor.usr

audit_actor_usr_update_trigger

auditor.actor_usr_history

INSERT

actor.usr_address

audit_actor_usr_address_update_trigger

auditor.actor_usr_address_history

INSERT

asset.call_number

audit_asset_call_number_update_trigger

auditor.asset_call_number_history

INSERT

asset.call_number

z_opac_vis_mat_view_tgr

asset.copy_vis_attr_cache

INSERT

asset.call_number

z_opac_vis_mat_view_tgr

biblio.record_entry

UPDATE

asset.copy

audit_asset_copy_update_trigger

auditor.asset_copy_history

INSERT

asset.copy

z_opac_vis_mat_view_del_tgr

asset.copy_vis_attr_cache

INSERT

asset.copy

z_opac_vis_mat_view_del_tgr

biblio.record_entry

UPDATE

authority.simple_heading

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

biblio.peer_bib_copy_map

z_opac_vis_mat_view_tgr

asset.copy_vis_attr_cache

INSERT

biblio.peer_bib_copy_map

z_opac_vis_mat_view_tgr

biblio.record_entry

UPDATE

biblio.record_entry

audit_biblio_record_entry_update_trigger

auditor.biblio_record_entry_history

INSERT

biblio.record_entry

z_opac_vis_mat_view_tgr

asset.copy_vis_attr_cache

INSERT

booking.reservation

mat_summary_change_tgr

money.materialized_billable_xact_summary

UPDATE

metabib.author_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

metabib.identifier_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

metabib.keyword_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

metabib.series_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

metabib.subject_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

metabib.title_field_entry

maintain_symspell_entries_tgr

search.symspell_dictionary_updates

INSERT

money.account_adjustment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.billing

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.bnm_desk_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.bnm_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.cash_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.check_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.credit_card_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.credit_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.debit_card_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.forgive_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.goods_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.grocery

mat_summary_change_tgr

money.materialized_billable_xact_summary

UPDATE

money.payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

money.work_payment

mat_summary_add_tgr

money.materialized_billable_xact_summary

UPDATE

serial.issuance

materialize_holding_code

serial.materialized_holding_code

INSERT

serial.unit

audit_serial_unit_update_trigger

auditor.serial_unit_history

INSERT

serial.unit

z_opac_vis_mat_view_del_tgr

asset.copy_vis_attr_cache

INSERT

serial.unit

z_opac_vis_mat_view_del_tgr

biblio.record_entry

UPDATE

vandelay.queued_authority_record

ingest_authority_trigger

vandelay.queued_authority_record_attr

INSERT

vandelay.queued_authority_record

zz_match_auths_trigger

vandelay.authority_match

INSERT

vandelay.queued_bib_record

ingest_bib_trigger

vandelay.queued_bib_record_attr

INSERT

vandelay.queued_bib_record

ingest_item_trigger

vandelay.import_item

INSERT

vandelay.queued_bib_record

zz_match_bibs_trigger

vandelay.bib_match

INSERT