sql >> Base de Datos >  >> RDS >> Oracle

hacer referencia a una clave compuesta en Oracle

¿ACCREDITATION_BODY_LOOK_UP tiene clave principal (o clave única)?

select constraint_name, constraint_type
from user_constraints
where table_name = 'ACCREDITATION_BODY_LOOK_UP'
and constraint_type in ('P', 'U'); 

En caso afirmativo, ¿cuáles son sus columnas? Debe hacer referencia a todas esas columnas en el mismo orden cuando agrega una clave externa a una tabla dependiente.

select column_name, position
from user_cons_columns
where table_name = 'ACCREDITATION_BODY_LOOK_UP'
and constraint_name = '<< constraint from previous query >>';

De lo contrario, debe crear una clave principal en esa tabla antes de poder hacer referencia a ella en una clave externa.

alter table ACCREDITATION_BODY_LOOK_UP
    add constraint ACCR_BODY_LKUP_PK primary key (ACCREDITATION_BODY_ID);