140 Foreign Key Constraints
| Constraint Name | Child Column | Parent Column | Delete Rule | ||
|---|---|---|---|---|---|
| node_roles_sub_type_id_fkey |
|
|
Restrict delete | ||
| node_roles_node_type_id_fkey |
|
|
Restrict delete | ||
| step_inds_ind_id_fkey |
|
|
Restrict delete | ||
| step_inds_step_id_fkey |
|
|
Cascade on delete | ||
| node_inds_ind_id_fkey |
|
|
Restrict delete | ||
| node_inds_ref_id_fkey |
|
|
Restrict delete | ||
| node_inds_node_id_fkey |
|
|
Restrict delete | ||
| flow_inds_flow_id_fkey |
|
|
Cascade on delete | ||
| flow_inds_ref_id_fkey |
|
|
Restrict delete | ||
| flow_inds_ind_id_fkey |
|
|
Restrict delete | ||
| trader_labels_trader_id_fkey |
|
|
Cascade on delete | ||
| trader_labels_label_id_fkey |
|
|
Cascade on delete | ||
| step_quals_qual_id_fkey |
|
|
Restrict delete | ||
| step_quals_step_id_fkey |
|
|
Cascade on delete | ||
| step_quals_flow_id_fkey |
|
|
Cascade on delete | ||
| release_refs_ref_id_fkey |
|
|
Restrict delete | ||
| release_refs_release_id_fkey |
|
|
Restrict delete | ||
| quants_indicator_type_id_fkey |
|
|
Restrict delete | ||
| quants_country_id_fkey |
|
|
Restrict delete | ||
| quants_indicator_type_id_fkey1 |
|
|
Restrict delete | ||
| quants_com_id_fkey |
|
|
Restrict delete | ||
| release_context_node_quals_ref_id_fkey |
|
|
Restrict delete | ||
| release_node_quals_release_id_fkey |
|
|
Restrict delete | ||
| release_node_quals_context_id_fkey |
|
|
Restrict delete | ||
| release_node_quals_qual_id_fkey |
|
|
Restrict delete | ||
| flows_ref_id_fkey |
|
|
Restrict delete | ||
| flows_raw_id_fkey |
|
|
Restrict delete | ||
| flows_com_eq_group_ref_id_fkey |
|
|
Restrict delete | ||
| release_country_node_quals_release_id_fkey |
|
|
Restrict delete | ||
| release_country_node_quals_ref_id_fkey |
|
|
Restrict delete | ||
| release_country_node_quals_qual_id_fkey |
|
|
Restrict delete | ||
| link_inds_link_id_fkey |
|
|
Cascade on delete | ||
| link_inds_ind_id_fkey |
|
|
Restrict delete | ||
| release_country_node_inds_release_id_fkey |
|
|
Restrict delete | ||
| release_country_node_inds_ref_id_fkey |
|
|
Restrict delete | ||
| release_country_node_inds_ind_id_fkey |
|
|
Restrict delete | ||
| links_references_parent_ref_id_fkey |
|
|
Restrict delete | ||
| flow_quants_quant_id_fkey |
|
|
Restrict delete | ||
| flow_quants_ref_id_fkey |
|
|
Restrict delete | ||
| flow_quants_flow_id_fkey |
|
|
Cascade on delete | ||
| node_sub_types_node_type_id_fkey |
|
|
Restrict delete | ||
| commodity_names_com_id_fkey |
|
|
Restrict delete | ||
| reference_node_roles_node_role_id_fkey |
|
|
Restrict delete | ||
| reference_node_roles_ref_id_fkey |
|
|
Cascade on delete | ||
| flow_paths_node_id_fkey |
|
|
Restrict delete | ||
| flow_paths_flow_id_fkey |
|
|
Cascade on delete | ||
| reference_trader_labels_trader_id_fkey |
|
|
Restrict delete | ||
| reference_trader_labels_ref_id_fkey |
|
|
Restrict delete | ||
| reference_trader_labels_label_id_fkey |
|
|
Restrict delete | ||
| main_id_fkey |
|
|
Restrict delete | ||
| steps_com_eq_factor_id_fkey |
|
|
Restrict delete | ||
| steps_flow_id_fkey |
|
|
Cascade on delete | ||
| steps_com_id_fkey |
|
|
Restrict delete | ||
| new_commodity_equivalence_factors_node_id_fkey |
|
|
Restrict delete | ||
| new_commodity_equivalence_factors_ref_id_fkey |
|
|
Restrict delete | ||
| new_commodity_equivalence_factors_com_id_fkey |
|
|
Restrict delete | ||
| node_quants_ref_id_fkey |
|
|
Restrict delete | ||
| node_quants_quant_id_fkey |
|
|
Restrict delete | ||
| node_quants_node_id_fkey |
|
|
Restrict delete | ||
| link_quals_link_id_fkey |
|
|
Cascade on delete | ||
| link_quals_qual_id_fkey |
|
|
Restrict delete | ||
| links_ref_id_fkey |
|
|
Restrict delete | ||
| links_com_id_fkey |
|
|
Restrict delete | ||
| flow_quals_ref_id_fkey |
|
|
Restrict delete | ||
| flow_quals_qual_id_fkey |
|
|
Restrict delete | ||
| flow_quals_flow_id_fkey |
|
|
Cascade on delete | ||
| node_names_node_id_fkey |
|
|
Cascade on delete | ||
| link_paths_node_id_fkey |
|
|
Restrict delete | ||
| link_paths_link_id_fkey |
|
|
Cascade on delete | ||
| refs_country_id_fkey |
|
|
Restrict delete | ||
| refs_commodity_equivalence_group_id_fkey |
|
|
Restrict delete | ||
| refs_parent_ref_id_fkey |
|
|
Restrict delete | ||
| refs_com_id_fkey |
|
|
Restrict delete | ||
| refs_other_parent_ref_id_fkey |
|
|
Restrict delete | ||
| commodity_equivalence_group_factors_com_eq_factor_id_fkey |
|
|
Restrict delete | ||
| commodity_equivalence_group_factors_com_eq_group_ref_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_inds_ref_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_inds_ind_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_inds_release_id_fkey |
|
|
Restrict delete | ||
| commodity_equivalence_groups_com_id_fkey |
|
|
Restrict delete | ||
| inds_country_id_fkey |
|
|
Restrict delete | ||
| inds_indicator_type_id_fkey1 |
|
|
Restrict delete | ||
| inds_com_id_fkey |
|
|
Restrict delete | ||
| inds_indicator_type_id_fkey |
|
|
Restrict delete | ||
| release_node_quants_release_id_fkey |
|
|
Restrict delete | ||
| release_node_quants_quant_id_fkey |
|
|
Restrict delete | ||
| release_node_quants_context_id_fkey |
|
|
Restrict delete | ||
| release_context_node_quants_ref_id_fkey |
|
|
Restrict delete | ||
| country_levels_country_id_fkey |
|
|
Restrict delete | ||
| nodes_type_id_fkey |
|
|
Restrict delete | ||
| nodes_sub_type_id_fkey |
|
|
Restrict delete | ||
| nodes_parent_id_fkey |
|
|
Restrict delete | ||
| nodes_sub_type_id_fkey3 |
|
|
Restrict delete | ||
| nodes_sub_type_id_fkey2 |
|
|
Restrict delete | ||
| nodes_sub_type_id_fkey1 |
|
|
Restrict delete | ||
| release_country_node_quants_ref_id_fkey |
|
|
Restrict delete | ||
| release_country_node_quants_release_id_fkey |
|
|
Restrict delete | ||
| release_country_node_quants_quant_id_fkey |
|
|
Restrict delete | ||
| commodity_code_values_com_id_fkey |
|
|
Restrict delete | ||
| commodity_code_values_com_code_id_fkey |
|
|
Restrict delete | ||
| commodity_ratios_node_id_fkey |
|
|
Restrict delete | ||
| commodity_ratios_com_id_fkey |
|
|
Restrict delete | ||
| commodity_ratios_commodity_equivalence_group_id_fkey |
|
|
Restrict delete | ||
| step_quants_step_id_fkey |
|
|
Cascade on delete | ||
| step_quants_quant_id_fkey |
|
|
Restrict delete | ||
| link_quants_link_id_fkey |
|
|
Cascade on delete | ||
| link_quants_quant_id_fkey |
|
|
Restrict delete | ||
| reference_group_traders_group_id_fkey |
|
|
Restrict delete | ||
| reference_group_traders_trader_id_fkey |
|
|
Restrict delete | ||
| reference_group_traders_ref_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quals_release_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quals_ref_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quals_qual_id_fkey |
|
|
Restrict delete | ||
| links_reference_node_roles_ref_id_fkey |
|
|
Restrict delete | ||
| links_reference_node_roles_node_role_id_fkey |
|
|
Restrict delete | ||
| node_code_values_node_id_fkey |
|
|
Restrict delete | ||
| node_code_values_code_id_fkey |
|
|
Restrict delete | ||
| release_node_inds_ind_id_fkey |
|
|
Restrict delete | ||
| release_context_node_inds_ref_id_fkey |
|
|
Restrict delete | ||
| release_node_inds_release_id_fkey |
|
|
Restrict delete | ||
| release_node_inds_context_id_fkey |
|
|
Restrict delete | ||
| trader_groups_group_id_fkey |
|
|
Cascade on delete | ||
| trader_groups_trader_id_fkey |
|
|
Cascade on delete | ||
| contexts_country_id_fkey |
|
|
Restrict delete | ||
| contexts_com_id_fkey |
|
|
Restrict delete | ||
| node_quals_qual_id_fkey |
|
|
Restrict delete | ||
| node_quals_ref_id_fkey |
|
|
Restrict delete | ||
| node_quals_node_id_fkey |
|
|
Restrict delete | ||
| node_attributes_references_parent_ref_id_fkey |
|
|
Restrict delete | ||
| node_attributes_references_other_parent_ref_id_fkey |
|
|
Restrict delete | ||
| node_attributes_references_commodity_id_fkey |
|
|
Restrict delete | ||
| node_attributes_references_country_id_fkey |
|
|
Restrict delete | ||
| quals_indicator_type_id_fkey |
|
|
Restrict delete | ||
| quals_indicator_type_id_fkey1 |
|
|
Restrict delete | ||
| quals_country_id_fkey |
|
|
Restrict delete | ||
| quals_com_id_fkey |
|
|
Restrict delete | ||
| commodities_parent_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quants_release_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quants_quant_id_fkey |
|
|
Restrict delete | ||
| release_actor_node_quants_ref_id_fkey |
|
|
Restrict delete |
Check Constraints
| Table | Constraint Name | Constraint |
|---|---|---|
| node_roles | role_must_be_uppercase | ((upper(role) = role)) |
| releases | at_most_one_release_current | ( CASE WHEN (current <> true) THEN true ELSE (NOT already_current_release(id)) END) |
| releases | at_most_one_release_public | ( CASE WHEN (public <> true) THEN true ELSE (NOT already_public_release(id)) END) |
| node_inds | only_trader_can_inherit_node_inds | ( CASE WHEN (get_node_type(node_id) <> 'TRADER'::text) THEN (NOT inherited) ELSE true END) |
| trader_labels | trader_labels_label_id_check | ((get_node_level(label_id) = 2)) |
| trader_labels | trader_labels_trader_id_check | ((get_node_level(trader_id) = 1)) |
| release_flows_references | no_missing_context | ((get_reference_context_id(ref_id) IS NOT NULL)) |
| release_flows_references | one_ref_per_context_in_release | ((NOT release_already_has_context_ref(id, release_id, ref_id))) |
| quants | name_must_be_uppercase | ((upper(name) = name)) |
| quants | one_quant_unit_per_indicator_type | ((unit_of_other_quants_with_indicator_type(id, indicator_type_id) = unit)) |
| quants | only_quants_with_indicator_type | ( CASE WHEN (indicator_type_id IS NOT NULL) THEN ((number_quals_with_indicator_type(indicator_type_id) = 0) AND (number_inds_with_indicator_type(indicator_type_id) = 0)) ELSE true END) |
| flows | flow_commodity_equivalence_group_id_same_as_reference | ((com_eq_group_id = get_reference_commodity_equivalence_group_id(ref_id))) |
| links_references | commodity_is_primary | (commodity_is_primary(com_id)) |
| links_references | link_version_not_null_if_latest | ( CASE WHEN latest THEN (version IS NOT NULL) ELSE true END) |
| links_references | parent_is_not_self | ((id <> parent_ref_id)) |
| node_sub_types | sub_type_must_be_uppercase | ((upper(sub_type) = sub_type)) |
| commodity_names | name_must_be_uppercase | ((upper(name) = name)) |
| reference_node_roles | number_roles_less_or_equal_to_path_length | ((length_reference_node_roles_acceptable_if_exists((ref_id)::bigint) = true)) |
| reference_trader_labels | check_reference_label_label_level | ((get_node_level((label_id)::bigint) = 2)) |
| reference_trader_labels | check_reference_label_label_type | ((get_node_type((label_id)::bigint) = 'TRADER'::text)) |
| reference_trader_labels | check_reference_label_trader_level | ((get_node_level((trader_id)::bigint) = 1)) |
| reference_trader_labels | check_reference_label_trader_type | ((get_node_type((trader_id)::bigint) = 'TRADER'::text)) |
| steps | less_steps_than_flow_path_nodes | ((get_number_flow_steps(flow_id) < get_flow_path_length(flow_id))) |
| node_quants | only_trader_can_inherit_node_quants | ( CASE WHEN (get_node_type(node_id) <> 'TRADER'::text) THEN (NOT inherited) ELSE true END) |
| flow_quals | uppercase_values | ((value = upper(value))) |
| node_names | name_must_be_uppercase | ((upper(name) = name)) |
| node_names | only_one_name_for_trader_nodes | ( CASE WHEN (get_node_type(node_id) <> 'TRADER'::text) THEN true ELSE is_default END) |
| node_names | unique_trader_labels | ( CASE WHEN ((get_node_type(node_id) <> 'TRADER'::text) OR (get_node_level(node_id) <> 2)) THEN true ELSE (NOT trader_label_already_exists(name, node_id)) END) |
| flows_references | commodity_is_primary | (commodity_is_primary(com_id)) |
| flows_references | flow_version_not_null_if_latest | ( CASE WHEN latest THEN (version IS NOT NULL) ELSE true END) |
| flows_references | only_full_latest | ( CASE WHEN (version_type <> 'FULL'::version_type) THEN (NOT latest) ELSE true END) |
| flows_references | parent_is_not_self | ((id <> parent_ref_id)) |
| flows_references | suffix_must_be_uppercase | ((upper(suffix) = suffix)) |
| flows_references | unique_version_type | ( CASE WHEN ((version IS NOT NULL) AND (version_type IS NOT NULL)) THEN (NOT context_already_has_version_type(id, country_id, com_id, version, version_type)) ELSE true END) |
| commodity_equivalence_group_factors | unique_com_factor_per_group | ((commodity_equivalence_group_already_has_com_factor(com_eq_group_id, com_eq_factor_id) = false)) |
| inds | name_must_be_uppercase | ((upper(name) = name)) |
| inds | one_ind_scale_per_indicator_type | ((scale_of_other_inds_with_indicator_type(id, indicator_type_id) = scale)) |
| inds | only_inds_with_indicator_type | ( CASE WHEN (indicator_type_id IS NOT NULL) THEN ((number_quals_with_indicator_type(indicator_type_id) = 0) AND (number_quants_with_indicator_type(indicator_type_id) = 0)) ELSE true END) |
| country_levels | all_levels_specified | ((country_max_level(country_id) = (country_number_levels(country_id) + 1))) |
| country_levels | level_sup_two | ((level >= 2)) |
| country_levels | name_must_be_uppercase | ((upper(name) = name)) |
| country_levels | node_is_country | ((get_node_level(country_id) = 1)) |
| nodes | level_not_null_if_trader_node | ((node_level_not_null_if_trader_node(id) = true)) |
| nodes | sub_type_is_allowed | ((get_sub_type_type_id((sub_type_id)::bigint) = type_id)) |
| nodes | unique_trase_id | ( CASE WHEN ((time_start IS NOT NULL) OR (time_end IS NOT NULL) OR (trase_id IS NULL)) THEN true ELSE (trase_id_already_exists(id, trase_id) = false) END) |
| commodity_ratios | commodity_ratios_check | ((NOT commodity_already_has_ratio_at_location_and_time(id, commodity_id, node_id, time_start, time_end, commodity_equivalence_group_id))) |
| reference_group_traders | check_reference_group_group_level | ((get_node_level((group_id)::bigint) = 0)) |
| reference_group_traders | check_reference_group_group_type | ((get_node_type((group_id)::bigint) = 'TRADER'::text)) |
| reference_group_traders | check_reference_group_trader_level | ((get_node_level((trader_id)::bigint) = 1)) |
| reference_group_traders | check_reference_group_trader_type | ((get_node_type((trader_id)::bigint) = 'TRADER'::text)) |
| links_reference_node_roles | node_role_matches_level | ( CASE WHEN (get_node_role_level(node_role_id) IS NOT NULL) THEN (get_node_role_level(node_role_id) = get_link_ref_position_level(ref_id, "position")) ELSE true END) |
| links_reference_node_roles | node_role_matches_node_type_id | ( CASE WHEN (get_node_role_node_type_id(node_role_id) IS NOT NULL) THEN (get_link_ref_position_node_type_id(ref_id, "position") = get_node_role_node_type_id(node_role_id)) ELSE true END) |
| links_reference_node_roles | node_role_matches_sub_type_id | ( CASE WHEN (get_node_role_sub_type_id(node_role_id) IS NOT NULL) THEN (get_link_ref_position_sub_type_id(ref_id, "position") = get_node_role_sub_type_id(node_role_id)) ELSE true END) |
| links_reference_node_roles | number_roles_less_or_equal_to_path_length | ((length_reference_node_roles_acceptable_if_exists((ref_id)::bigint) = true)) |
| trader_groups | trader_groups_check | ((NOT trader_already_has_group_at_time(id, trader_id, time_start, time_end))) |
| trader_groups | trader_groups_group_id_check | ((get_node_level(group_id) = 0)) |
| trader_groups | trader_groups_trader_id_check | ((get_node_level(trader_id) = 1)) |
| contexts | check_node_is_country | ((get_node_level(country_id) = 1)) |
| contexts | commodity_is_primary | (commodity_is_primary(com_id)) |
| node_quals | only_trader_can_inherit_node_quals | ( CASE WHEN (get_node_type(node_id) <> 'TRADER'::text) THEN (NOT inherited) ELSE true END) |
| node_quals | uppercase_values | ((value = upper(value))) |
| node_attributes_references | commodity_is_primary | (commodity_is_primary(com_id)) |
| quals | name_must_be_uppercase | ((upper(name) = name)) |
| quals | only_quals_with_indicator_type | ( CASE WHEN (indicator_type_id IS NOT NULL) THEN ((number_quants_with_indicator_type(indicator_type_id) = 0) AND (number_inds_with_indicator_type(indicator_type_id) = 0)) ELSE true END) |