В ссылочной таблице factIngresosCurso отсутствуют первичные ключи или ключи-кандидаты, соответствующие столбцу ссылок. - PullRequest
0 голосов
/ 11 ноября 2018

Помогите пожалуйста, я всегда получаю это сообщение:

В ссылочной таблице factIngresosCurso отсутствуют первичные ключи или ключи-кандидаты, которые соответствуют списку ссылающихся столбцов во внешнем ключе fk_ingresos_curso.

Мои таблицы:

create table factIngresos
(
    cicCod char(6),
    curcod char(5) references dimCurso,
    cursec char(2),
    codSec char(1) references dimSeccion,
    tiempoid int references dimTiempo,
    codHor int references dimHorario,
    proCodUno char(5) references dimPersonal,
    vacantes int,
    inscritos int,
    ingresoProyectado money,
    ingresoNeto money,
    becas money default 0,
    constraint pk_Ingresos primary key(cicCod, curCod, curSec) 
)
go

create table factIngCursoAlumno
(
    alucod char(8) references dimAlumno,
    cursec char(2), ciccod char(6), curcod char(5),
    alucurCosto float, alucurefe float,
    alucurPF float,
    constraint pk_facIC primary key(alucod, cursec, ciccod, curcod),
    constraint fk_ingresos_curso 
        foreign key(cursec, ciccod, curcod) references factIngresos(cursec, ciccod, curcod)
)
go

1 Ответ

0 голосов
/ 11 ноября 2018

Первичный ключ in factIngresos равен

cicCod, curCod, curSec

Тем не менее, в другой таблице вы ссылаетесь на нее, используя следующие столбцы и последовательность:

foreign key(cursec, ciccod, curcod)

Как видите, просто исходя из названий столбцов, порядок не такой, как в спецификации первичного ключа.

Вам нужно убедиться, , что столбец и их порядок (!!) идентичны - так что я думаю, вам нужно будет использовать этот иностранный вместо конфигурации ключа:

constraint fk_ingresos_curso 
    foreign key(ciccod, curcod, cursec) references factIngresos(ciccod, curcod, cursec)
...