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

ORA-02270:ninguna clave principal o única coincidente para esta lista de columnas

Estás creando una clave compuesta (o compuesta) haciendo esto principal:

("COURSE_ID", "ACCREDITATION_BODY_ID", "DATE_OBTAINED")

y luego, intenta hacer ACCREDITATION_BODY_ID una clave externa, que hace referencia a la misma columna en la misma tabla. No sé qué estás tratando de lograr, pero de todos modos, no la forma correcta de hacerlo.

En mi opinión, La razón es: ACCREDITATION_BODY_ID debe ser una clave principal para que se haga referencia a ella como una clave externa, pero ese no es el caso aquí. La restricción de su tabla es una clave compuesta , y debe hacer referencia a todos las columnas en la instrucción de clave externa. (arréglame si me equivoco)

Intente hacer referencia a todas las columnas de clave compuesta en la declaración de clave externa. Eso puede resolver tu problema.

Por cierto, hacer referencia a una clave principal como clave externa en la misma tabla no tenía ningún sentido para mí (tal vez me estoy perdiendo algo, pero aún así ...). Consideraría cambiar el diseño.