sql >> Base de Datos >  >> RDS >> Sqlserver

No hay claves primarias o candidatas en la tabla a la que se hace referencia que coincidan con la lista de columnas de referencia en la clave externa

Las claves externas funcionan uniendo una columna a una clave única en otra tabla, y esa clave única debe definirse como alguna forma de índice único, ya sea la clave principal o algún otro índice único.

Por el momento, el único índice único que tiene es uno compuesto en ISBN, Title cuál es su clave principal.

Hay una serie de opciones abiertas para usted, dependiendo exactamente de lo que contiene BookTitle y la relación de los datos dentro de él.

Me arriesgaría a adivinar que el ISBN es único para cada fila en BookTitle. BAJO el supuesto de que este sea el caso, cambie su clave principal para que esté solo en ISBN y cambie BookCopy para que en lugar de Título tenga ISBN y únase a eso.

Si necesita mantener su clave principal como ISBN, Title luego, debe almacenar el ISBN en BookCopy, así como el Título y la clave externa en ambas columnas, O debe crear un índice único en BookTitle (Título) como un índice distinto.

De manera más general, debe asegurarse de que la columna o columnas que tiene en sus REFERENCES la cláusula coincide exactamente con un índice único en la tabla principal:en su caso falla porque no tiene un único índice único en Title solo.