none
Error al crear llaves foraneas RRS feed

  • Pregunta

  • Hola, estoy creando mi primera base de datos por mi propia cuenta el caso es que me encontré con un error que no he sabido solucionar y los vídeos en YT no ayudan mucho, el error es el siguiente:

    Msg 1776, Level 16, State 0, Line 117
    There are no primary or candidate keys in the referenced table 'Asignacion_Lugares' that match the referencing column list in the foreign key 'FK__Pagos_Cli__Cod_R__671F4F74'.
    Msg 1750, Level 16, State 0, Line 117
    Could not create constraint. See previous errors.

    Se que el mensaje es bastante obvio, intente crear nuevamente las tablas para verificar algún posible error pero aun así falla, de antemano gracias por cualquier ayuda.

    CREATE TABLE Asignacion_Lugares(
    	Cod_Referencia nvarchar (12),
    	Cve_Sucursal nvarchar(10),
    	Cve_Lugar nvarchar(15),
    	Cve_Sala int,
    	Cve_tipo_Sala int,
    	primary key (Cod_Referencia, Cve_Lugar, Cve_Sucursal, Cve_Sala,Cve_tipo_Sala),
    	foreign key (Cve_Sucursal, Cve_Lugar, Cve_Sala,Cve_tipo_Sala) references Lugar_Sala_Cine (Cve_Sucursal, Cve_Lugar, Cve_Sala,Cve_tipo_Sala)
    )
    
    
    CREATE TABLE Pagos_Clientes(
    	Cod_Referencia nvarchar (12),
    	fecha_pago date,
    	Cve_Empleado int,
    	Cve_Cliente int,
    	Numero_Tarjeta int,
    	Cve_Banco int,
    	Costo_Total_Cine float,
    	Costo_Toltal_Produtos float,
    	Status_cobro int,
    	Cve_Sucursal nvarchar(10),
    	Cve_Sala int,
    	Cve_Tipo_sala int,
    	Cve_Horario int,
    	Cve_Pelicula nvarchar (10),
    	Status_Impresion int,
    	Status_Reimpresion int,
    	foreign key (Cve_Cliente, Numero_Tarjeta, Cve_Banco) references ClienteTarjeta (Cve_Cliente, Numero_Tarjeta, Cve_Banco),
    	foreign key (Cve_Sucursal, Cve_Sala, Cve_Tipo_sala, Cve_Horario, Cve_Pelicula) references Sala_Horario_Peliculas (Cve_Sucursal, Cve_Sala, Cve_Tipo_sala, Cve_Horario, Cve_Pelicula),
    	foreign key (Cod_Referencia) references Asignacion_Lugares (Cod_Referencia)
    );



    • Editado Alexis Chavarria jueves, 18 de abril de 2019 14:05 falta de informacion
    jueves, 18 de abril de 2019 14:05

Todas las respuestas

  • Un requisito para las Foreing Keys en SQL Server es que el destino de la foreign key tiene que ser una clave primaria, o bien tener un indice de tipo UNIQUE.

    El mensaje de error te esta diciendo que no se cumple dicha condicion en esta FK:

    foreign key (Cod_Referencia) references Asignacion_Lugares (Cod_Referencia)

    En otras palabras, el campo Cod_Referencia de la tabla Asignacion_Lugares no tiene un indice UNIQUE (ni tampoco es clave primaria, que automaticamente asigna un indice de dicho tipo).

    jueves, 18 de abril de 2019 15:57