Constraints

140 Foreign Key Constraints

Constraint Name Child Column Parent Column Delete Rule
node_roles_sub_type_id_fkey
node_roles.sub_type_id
node_sub_types.id
Restrict delete
node_roles_node_type_id_fkey
node_roles.node_type_id
node_types.id
Restrict delete
step_inds_ind_id_fkey
step_inds.ind_id
inds.id
Restrict delete
step_inds_step_id_fkey
step_inds.step_id
steps.id
Cascade on delete
node_inds_ind_id_fkey
node_inds.ind_id
inds.id
Restrict delete
node_inds_ref_id_fkey
node_inds.ref_id
node_attributes_references.id
Restrict delete
node_inds_node_id_fkey
node_inds.node_id
nodes.id
Restrict delete
flow_inds_flow_id_fkey
flow_inds.flow_id
flows.id
Cascade on delete
flow_inds_ref_id_fkey
flow_inds.ref_id
node_attributes_references.id
Restrict delete
flow_inds_ind_id_fkey
flow_inds.ind_id
inds.id
Restrict delete
trader_labels_trader_id_fkey
trader_labels.trader_id
nodes.id
Cascade on delete
trader_labels_label_id_fkey
trader_labels.label_id
nodes.id
Cascade on delete
step_quals_qual_id_fkey
step_quals.qual_id
quals.id
Restrict delete
step_quals_step_id_fkey
step_quals.step_id
steps.id
Cascade on delete
step_quals_flow_id_fkey
step_quals.step_id
steps.id
Cascade on delete
release_refs_ref_id_fkey
release_flows_references.ref_id
flows_references.id
Restrict delete
release_refs_release_id_fkey
release_flows_references.release_id
releases.id
Restrict delete
quants_indicator_type_id_fkey
quants.indicator_type_id
indicator_types.id
Restrict delete
quants_country_id_fkey
quants.country_id
nodes.id
Restrict delete
quants_indicator_type_id_fkey1
quants.indicator_type_id
indicator_types.id
Restrict delete
quants_com_id_fkey
quants.com_id
commodities.id
Restrict delete
release_context_node_quals_ref_id_fkey
release_context_node_quals.ref_id
node_attributes_references.id
Restrict delete
release_node_quals_release_id_fkey
release_context_node_quals.release_id
releases.id
Restrict delete
release_node_quals_context_id_fkey
release_context_node_quals.context_id
contexts.id
Restrict delete
release_node_quals_qual_id_fkey
release_context_node_quals.qual_id
quals.id
Restrict delete
flows_ref_id_fkey
flows.ref_id
flows_references.id
Restrict delete
flows_raw_id_fkey
flows.raw_id
commodities.id
Restrict delete
flows_com_eq_group_ref_id_fkey
flows.com_eq_group_id
commodity_equivalence_groups.id
Restrict delete
release_country_node_quals_release_id_fkey
release_country_node_quals.release_id
releases.id
Restrict delete
release_country_node_quals_ref_id_fkey
release_country_node_quals.ref_id
node_attributes_references.id
Restrict delete
release_country_node_quals_qual_id_fkey
release_country_node_quals.qual_id
quals.id
Restrict delete
link_inds_link_id_fkey
link_inds.link_id
links.id
Cascade on delete
link_inds_ind_id_fkey
link_inds.ind_id
inds.id
Restrict delete
release_country_node_inds_release_id_fkey
release_country_node_inds.release_id
releases.id
Restrict delete
release_country_node_inds_ref_id_fkey
release_country_node_inds.ref_id
node_attributes_references.id
Restrict delete
release_country_node_inds_ind_id_fkey
release_country_node_inds.ind_id
inds.id
Restrict delete
links_references_parent_ref_id_fkey
links_references.parent_ref_id
links_references.id
Restrict delete
flow_quants_quant_id_fkey
flow_quants.quant_id
quants.id
Restrict delete
flow_quants_ref_id_fkey
flow_quants.ref_id
node_attributes_references.id
Restrict delete
flow_quants_flow_id_fkey
flow_quants.flow_id
flows.id
Cascade on delete
node_sub_types_node_type_id_fkey
node_sub_types.node_type_id
node_types.id
Restrict delete
commodity_names_com_id_fkey
commodity_names.com_id
commodities.id
Restrict delete
reference_node_roles_node_role_id_fkey
reference_node_roles.node_role_id
node_roles.id
Restrict delete
reference_node_roles_ref_id_fkey
reference_node_roles.ref_id
flows_references.id
Cascade on delete
flow_paths_node_id_fkey
flow_paths.node_id
nodes.id
Restrict delete
flow_paths_flow_id_fkey
flow_paths.flow_id
flows.id
Cascade on delete
reference_trader_labels_trader_id_fkey
reference_trader_labels.trader_id
nodes.id
Restrict delete
reference_trader_labels_ref_id_fkey
reference_trader_labels.ref_id
flows_references.id
Restrict delete
reference_trader_labels_label_id_fkey
reference_trader_labels.label_id
nodes.id
Restrict delete
main_id_fkey
release_nodes.main_id
nodes.id
Restrict delete
steps_com_eq_factor_id_fkey
steps.com_eq_factor_id
commodity_equivalence_factors.id
Restrict delete
steps_flow_id_fkey
steps.flow_id
flows.id
Cascade on delete
steps_com_id_fkey
steps.com_id
commodities.id
Restrict delete
new_commodity_equivalence_factors_node_id_fkey
commodity_equivalence_factors.node_id
nodes.id
Restrict delete
new_commodity_equivalence_factors_ref_id_fkey
commodity_equivalence_factors.ref_id
commodity_equivalence_refs.id
Restrict delete
new_commodity_equivalence_factors_com_id_fkey
commodity_equivalence_factors.com_id
commodities.id
Restrict delete
node_quants_ref_id_fkey
node_quants.ref_id
node_attributes_references.id
Restrict delete
node_quants_quant_id_fkey
node_quants.quant_id
quants.id
Restrict delete
node_quants_node_id_fkey
node_quants.node_id
nodes.id
Restrict delete
link_quals_link_id_fkey
link_quals.link_id
links.id
Cascade on delete
link_quals_qual_id_fkey
link_quals.qual_id
quals.id
Restrict delete
links_ref_id_fkey
links.ref_id
links_references.id
Restrict delete
links_com_id_fkey
links.raw_id
commodities.id
Restrict delete
flow_quals_ref_id_fkey
flow_quals.ref_id
node_attributes_references.id
Restrict delete
flow_quals_qual_id_fkey
flow_quals.qual_id
quals.id
Restrict delete
flow_quals_flow_id_fkey
flow_quals.flow_id
flows.id
Cascade on delete
node_names_node_id_fkey
node_names.node_id
nodes.id
Cascade on delete
link_paths_node_id_fkey
link_paths.node_id
nodes.id
Restrict delete
link_paths_link_id_fkey
link_paths.link_id
links.id
Cascade on delete
refs_country_id_fkey
flows_references.country_id
nodes.id
Restrict delete
refs_commodity_equivalence_group_id_fkey
flows_references.commodity_equivalence_group_id
commodity_equivalence_groups.id
Restrict delete
refs_parent_ref_id_fkey
flows_references.parent_ref_id
flows_references.id
Restrict delete
refs_com_id_fkey
flows_references.com_id
commodities.id
Restrict delete
refs_other_parent_ref_id_fkey
flows_references.other_parent_ref_id
flows_references.id
Restrict delete
commodity_equivalence_group_factors_com_eq_factor_id_fkey
commodity_equivalence_group_factors.com_eq_factor_id
commodity_equivalence_factors.id
Restrict delete
commodity_equivalence_group_factors_com_eq_group_ref_id_fkey
commodity_equivalence_group_factors.com_eq_group_id
commodity_equivalence_groups.id
Restrict delete
release_actor_node_inds_ref_id_fkey
release_actor_node_inds.ref_id
node_attributes_references.id
Restrict delete
release_actor_node_inds_ind_id_fkey
release_actor_node_inds.ind_id
inds.id
Restrict delete
release_actor_node_inds_release_id_fkey
release_actor_node_inds.release_id
releases.id
Restrict delete
commodity_equivalence_groups_com_id_fkey
commodity_equivalence_groups.com_id
commodities.id
Restrict delete
inds_country_id_fkey
inds.country_id
nodes.id
Restrict delete
inds_indicator_type_id_fkey1
inds.indicator_type_id
indicator_types.id
Restrict delete
inds_com_id_fkey
inds.com_id
commodities.id
Restrict delete
inds_indicator_type_id_fkey
inds.indicator_type_id
indicator_types.id
Restrict delete
release_node_quants_release_id_fkey
release_context_node_quants.release_id
releases.id
Restrict delete
release_node_quants_quant_id_fkey
release_context_node_quants.quant_id
quants.id
Restrict delete
release_node_quants_context_id_fkey
release_context_node_quants.context_id
contexts.id
Restrict delete
release_context_node_quants_ref_id_fkey
release_context_node_quants.ref_id
node_attributes_references.id
Restrict delete
country_levels_country_id_fkey
country_levels.country_id
nodes.id
Restrict delete
nodes_type_id_fkey
nodes.type_id
node_types.id
Restrict delete
nodes_sub_type_id_fkey
nodes.sub_type_id
node_sub_types.id
Restrict delete
nodes_parent_id_fkey
nodes.parent_id
nodes.id
Restrict delete
nodes_sub_type_id_fkey3
nodes.sub_type_id
node_sub_types.id
Restrict delete
nodes_sub_type_id_fkey2
nodes.sub_type_id
node_sub_types.id
Restrict delete
nodes_sub_type_id_fkey1
nodes.sub_type_id
node_sub_types.id
Restrict delete
release_country_node_quants_ref_id_fkey
release_country_node_quants.ref_id
node_attributes_references.id
Restrict delete
release_country_node_quants_release_id_fkey
release_country_node_quants.release_id
releases.id
Restrict delete
release_country_node_quants_quant_id_fkey
release_country_node_quants.quant_id
quants.id
Restrict delete
commodity_code_values_com_id_fkey
commodity_code_values.com_id
commodities.id
Restrict delete
commodity_code_values_com_code_id_fkey
commodity_code_values.com_code_id
commodity_codes.id
Restrict delete
commodity_ratios_node_id_fkey
commodity_ratios.node_id
nodes.id
Restrict delete
commodity_ratios_com_id_fkey
commodity_ratios.commodity_id
commodities.id
Restrict delete
commodity_ratios_commodity_equivalence_group_id_fkey
commodity_ratios.commodity_equivalence_group_id
commodity_equivalence_groups.id
Restrict delete
step_quants_step_id_fkey
step_quants.step_id
steps.id
Cascade on delete
step_quants_quant_id_fkey
step_quants.quant_id
quants.id
Restrict delete
link_quants_link_id_fkey
link_quants.link_id
links.id
Cascade on delete
link_quants_quant_id_fkey
link_quants.quant_id
quants.id
Restrict delete
reference_group_traders_group_id_fkey
reference_group_traders.group_id
nodes.id
Restrict delete
reference_group_traders_trader_id_fkey
reference_group_traders.trader_id
nodes.id
Restrict delete
reference_group_traders_ref_id_fkey
reference_group_traders.ref_id
flows_references.id
Restrict delete
release_actor_node_quals_release_id_fkey
release_actor_node_quals.release_id
releases.id
Restrict delete
release_actor_node_quals_ref_id_fkey
release_actor_node_quals.ref_id
node_attributes_references.id
Restrict delete
release_actor_node_quals_qual_id_fkey
release_actor_node_quals.qual_id
quals.id
Restrict delete
links_reference_node_roles_ref_id_fkey
links_reference_node_roles.ref_id
links_references.id
Restrict delete
links_reference_node_roles_node_role_id_fkey
links_reference_node_roles.node_role_id
node_roles.id
Restrict delete
node_code_values_node_id_fkey
node_code_values.node_id
nodes.id
Restrict delete
node_code_values_code_id_fkey
node_code_values.code_id
node_codes.id
Restrict delete
release_node_inds_ind_id_fkey
release_context_node_inds.ind_id
inds.id
Restrict delete
release_context_node_inds_ref_id_fkey
release_context_node_inds.ref_id
node_attributes_references.id
Restrict delete
release_node_inds_release_id_fkey
release_context_node_inds.release_id
releases.id
Restrict delete
release_node_inds_context_id_fkey
release_context_node_inds.context_id
contexts.id
Restrict delete
trader_groups_group_id_fkey
trader_groups.group_id
nodes.id
Cascade on delete
trader_groups_trader_id_fkey
trader_groups.trader_id
nodes.id
Cascade on delete
contexts_country_id_fkey
contexts.country_id
nodes.id
Restrict delete
contexts_com_id_fkey
contexts.com_id
commodities.id
Restrict delete
node_quals_qual_id_fkey
node_quals.qual_id
quals.id
Restrict delete
node_quals_ref_id_fkey
node_quals.ref_id
node_attributes_references.id
Restrict delete
node_quals_node_id_fkey
node_quals.node_id
nodes.id
Restrict delete
node_attributes_references_parent_ref_id_fkey
node_attributes_references.parent_ref_id
node_attributes_references.id
Restrict delete
node_attributes_references_other_parent_ref_id_fkey
node_attributes_references.other_parent_ref_id
node_attributes_references.id
Restrict delete
node_attributes_references_commodity_id_fkey
node_attributes_references.commodity_id
commodities.id
Restrict delete
node_attributes_references_country_id_fkey
node_attributes_references.country_id
nodes.id
Restrict delete
quals_indicator_type_id_fkey
quals.indicator_type_id
indicator_types.id
Restrict delete
quals_indicator_type_id_fkey1
quals.indicator_type_id
indicator_types.id
Restrict delete
quals_country_id_fkey
quals.country_id
nodes.id
Restrict delete
quals_com_id_fkey
quals.com_id
commodities.id
Restrict delete
commodities_parent_id_fkey
commodities.parent_id
commodities.id
Restrict delete
release_actor_node_quants_release_id_fkey
release_actor_node_quants.release_id
releases.id
Restrict delete
release_actor_node_quants_quant_id_fkey
release_actor_node_quants.quant_id
quants.id
Restrict delete
release_actor_node_quants_ref_id_fkey
release_actor_node_quants.ref_id
node_attributes_references.id
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)