Объявление внешнего ключа не приводит к автоматическому созданию столбца. Сначала необходимо объявить столбец, а затем внешний ключ.
Следовательно:
CREATE TABLE MEDICO_PACIENTE (
DNIMedico CHAR(9) NOT NULL,
DNIPaciente CHAR(9) NOT NULL,
Especialidad VARCHAR(200) NOT NULL,
CONSTRAINT fkMP_MEDICO FOREIGN KEY (DNIMedico) REFERENCES MEDICO (DNIMedico),
CONSTRAINT fkMP_PACIENTE FOREIGN KEY (DNIPaciente) REFERENCES PACIENTE (DNIPaciente)
);
Обратите внимание, что у каждого столбца повторения должны быть тот же тип данных и длина, что и у столбца, на который они ссылаются.
Было бы также неплохо объявить первичный ключ для таблицы MEDICO_PACIENTE
. Возможно, вы хотите составной первичный ключ на (DNIMedico, DNIPaciente )
:
CREATE TABLE MEDICO_PACIENTE (
DNIMedico CHAR(9) NOT NULL,
DNIPaciente CHAR(9) NOT NULL,
Especialidad VARCHAR(200) NOT NULL,
CONSTRAINT fkMP_MEDICO FOREIGN KEY (DNIMedico) REFERENCES MEDICO (DNIMedico),
CONSTRAINT fkMP_PACIENTE FOREIGN KEY (DNIPaciente) REFERENCES PACIENTE (DNIPaciente),
CONSTRAINT pk_MEDICO_PACIENTE PRIMARY KEY (DNIMedico, DNIPaciente)
);
Демонстрация на DB Fiddle